SELECT 
  cscart_products_categories.product_id, 
  GROUP_CONCAT(
    IF(
      cscart_products_categories.link_type = "M", 
      CONCAT(
        cscart_products_categories.category_id, 
        "M"
      ), 
      cscart_products_categories.category_id
    )
  ) AS category_ids, 
  product_position_source.position AS position 
FROM 
  cscart_products_categories 
  INNER JOIN cscart_categories ON cscart_categories.category_id = cscart_products_categories.category_id 
  AND cscart_categories.storefront_id IN (0, 1) 
  AND (
    cscart_categories.usergroup_ids = '' 
    OR FIND_IN_SET(
      0, cscart_categories.usergroup_ids
    ) 
    OR FIND_IN_SET(
      1, cscart_categories.usergroup_ids
    )
  ) 
  AND cscart_categories.status IN ('A', 'H') 
  LEFT JOIN cscart_products_categories AS product_position_source ON cscart_products_categories.product_id = product_position_source.product_id 
  AND product_position_source.category_id = 7158 
WHERE 
  cscart_products_categories.product_id IN (
    97796, 97797, 97798, 98052, 98053, 98149, 
    98150, 98153, 98156, 98762, 98851, 
    98852, 98853, 98854, 98855, 98856, 
    98857, 98858, 99133, 99141, 99142, 
    99151, 99152, 99169, 99170, 99248, 
    99257, 99262, 99322, 99323, 99404, 
    99405, 99406, 99407, 99408, 99409, 
    99410, 99411, 100143, 100392, 100433, 
    100436, 100437, 100677, 100678, 100679, 
    100680, 100681, 100682, 100683, 100684, 
    100685, 100686, 100687, 100688, 100689, 
    100690, 100691, 100692, 100693, 100694, 
    100695, 101011, 101012, 101013, 101014, 
    101015, 101016, 101017, 101018, 101019, 
    101020, 101021, 101625, 101684, 101685, 
    101686, 101687, 101694, 101695, 101963
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.01599

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "85.79"
    },
    "grouping_operation": {
      "using_filesort": false,
      "nested_loop": [
        {
          "table": {
            "table_name": "cscart_products_categories",
            "access_type": "range",
            "possible_keys": [
              "PRIMARY",
              "link_type",
              "pt"
            ],
            "key": "pt",
            "used_key_parts": [
              "product_id"
            ],
            "key_length": "3",
            "rows_examined_per_scan": 95,
            "rows_produced_per_join": 95,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "9.79",
              "eval_cost": "9.50",
              "prefix_cost": "19.29",
              "data_read_per_join": "1K"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`nuie_scalesta_net`.`cscart_products_categories`.`product_id` in (97796,97797,97798,98052,98053,98149,98150,98153,98156,98762,98851,98852,98853,98854,98855,98856,98857,98858,99133,99141,99142,99151,99152,99169,99170,99248,99257,99262,99322,99323,99404,99405,99406,99407,99408,99409,99410,99411,100143,100392,100433,100436,100437,100677,100678,100679,100680,100681,100682,100683,100684,100685,100686,100687,100688,100689,100690,100691,100692,100693,100694,100695,101011,101012,101013,101014,101015,101016,101017,101018,101019,101020,101021,101625,101684,101685,101686,101687,101694,101695,101963))"
          }
        },
        {
          "table": {
            "table_name": "product_position_source",
            "access_type": "eq_ref",
            "possible_keys": [
              "PRIMARY",
              "pt"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "category_id",
              "product_id"
            ],
            "key_length": "6",
            "ref": [
              "const",
              "nuie_scalesta_net.cscart_products_categories.product_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 95,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "23.75",
              "eval_cost": "9.50",
              "prefix_cost": "52.54",
              "data_read_per_join": "1K"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "position"
            ]
          }
        },
        {
          "table": {
            "table_name": "cscart_categories",
            "access_type": "eq_ref",
            "possible_keys": [
              "PRIMARY",
              "c_status",
              "p_category_id"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "category_id"
            ],
            "key_length": "3",
            "ref": [
              "nuie_scalesta_net.cscart_products_categories.category_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 4,
            "filtered": "5.00",
            "cost_info": {
              "read_cost": "23.75",
              "eval_cost": "0.48",
              "prefix_cost": "85.79",
              "data_read_per_join": "12K"
            },
            "used_columns": [
              "category_id",
              "usergroup_ids",
              "status",
              "storefront_id"
            ],
            "attached_condition": "((`nuie_scalesta_net`.`cscart_categories`.`storefront_id` in (0,1)) and ((`nuie_scalesta_net`.`cscart_categories`.`usergroup_ids` = '') or (0 <> find_in_set(0,`nuie_scalesta_net`.`cscart_categories`.`usergroup_ids`)) or (0 <> find_in_set(1,`nuie_scalesta_net`.`cscart_categories`.`usergroup_ids`))) and (`nuie_scalesta_net`.`cscart_categories`.`status` in ('A','H')))"
          }
        }
      ]
    }
  }
}

Result

product_id category_ids position
97796 7263M
97797 7263M
97798 7263M
98052 7263M
98053 7263M
98149 7263M
98150 7263M
98153 7263M
98156 7263M
98762 7263M
98851 7263M
98852 7263M
98853 7263M
98854 7263M
98855 7263M
98856 7263M
98857 7263M
98858 7263M
99133 7263M
99141 7263M
99142 7263M
99151 7263M
99152 7263M
99169 7263M
99170 7263M
99248 7263M
99257 7263M
99262 7263M
99322 7263M
99323 7263M
99404 7263M
99405 7263M
99406 7263M
99407 7263M
99408 7263M
99409 7263M
99410 7263M
99411 7263M
100143 7265,7247M
100392 7263M
100433 7263M
100436 7265,7247M
100437 7263M
100677 7263M
100678 7263M
100679 7263M
100680 7263M
100681 7263M
100682 7263M
100683 7263M
100684 7263M
100685 7263M
100686 7263M
100687 7263M
100688 7263M
100689 7263M
100690 7263M
100691 7263M
100692 7263M
100693 7263M
100694 7263M
100695 7263M
101011 7247M,7265
101012 7247M,7265
101013 7265,7247M
101014 7247M,7265
101015 7247M,7265
101016 7247M,7265
101017 7265,7247M
101018 7265,7247M
101019 7265,7247M
101020 7265,7247M
101021 7265,7247M
101625 7247M,7265
101684 7263M
101685 7263M
101686 7263M
101687 7263M
101694 7263M
101695 7263M
101963 7263M