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 = 7170 
WHERE 
  cscart_products_categories.product_id IN (
    99315, 99316, 99317, 99318, 99330, 99331, 
    99332, 99347, 99349, 99351, 99353, 
    99355, 99413, 99414, 99415, 99416, 
    99417, 99418, 99419, 99420, 99421, 
    99441, 99442, 99448, 99449, 99450, 
    99451, 99459, 99460, 99461, 99462, 
    99464, 99465, 99470, 99471, 99472, 
    99473, 99478, 99479, 99480, 99481, 
    99487, 99488, 99489, 99490, 99558, 
    99559, 99560, 99566, 99567, 99568, 
    99569, 99577, 99578, 99579, 99648, 
    99649, 99650, 99651, 99652, 100139, 
    100140, 100141, 100142, 100157, 100158, 
    100159, 100160, 100212, 100213, 100214, 
    100215, 100216, 100649, 100650, 100651, 
    100652, 100653, 101038, 101039, 101040, 
    101041, 101042, 101043, 101044, 101045, 
    101046, 101134, 101135, 101136, 101137, 
    101138, 101139, 101140, 101141, 101142
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00237

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "54.77"
    },
    "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": 96,
            "rows_produced_per_join": 96,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "9.89",
              "eval_cost": "9.60",
              "prefix_cost": "19.49",
              "data_read_per_join": "1K"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`nuie_scalesta_net`.`cscart_products_categories`.`product_id` in (99315,99316,99317,99318,99330,99331,99332,99347,99349,99351,99353,99355,99413,99414,99415,99416,99417,99418,99419,99420,99421,99441,99442,99448,99449,99450,99451,99459,99460,99461,99462,99464,99465,99470,99471,99472,99473,99478,99479,99480,99481,99487,99488,99489,99490,99558,99559,99560,99566,99567,99568,99569,99577,99578,99579,99648,99649,99650,99651,99652,100139,100140,100141,100142,100157,100158,100159,100160,100212,100213,100214,100215,100216,100649,100650,100651,100652,100653,101038,101039,101040,101041,101042,101043,101044,101045,101046,101134,101135,101136,101137,101138,101139,101140,101141,101142))"
          }
        },
        {
          "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": "24.00",
              "eval_cost": "0.48",
              "prefix_cost": "53.09",
              "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')))"
          }
        },
        {
          "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": 4,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "1.20",
              "eval_cost": "0.48",
              "prefix_cost": "54.77",
              "data_read_per_join": "76"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "position"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids position
99315 7201M
99316 7201M
99317 7201M
99318 7201M
99330 7201M
99331 7201M
99332 7201M
99347 7201M
99349 7201M
99351 7201M
99353 7201M
99355 7201M
99413 7201M
99414 7201M
99415 7201M
99416 7201M
99417 7201M
99418 7201M
99419 7201M
99420 7201M
99421 7201M
99441 7201M
99442 7201M
99448 7201M
99449 7201M
99450 7201M
99451 7201M
99459 7201M
99460 7201M
99461 7201M
99462 7201M
99464 7201M
99465 7201M
99470 7201M
99471 7201M
99472 7201M
99473 7201M
99478 7201M
99479 7201M
99480 7201M
99481 7201M
99487 7201M
99488 7201M
99489 7201M
99490 7201M
99558 7201M
99559 7201M
99560 7201M
99566 7201M
99567 7201M
99568 7201M
99569 7201M
99577 7201M
99578 7201M
99579 7201M
99648 7201M
99649 7201M
99650 7201M
99651 7201M
99652 7201M
100139 7201M
100140 7201M
100141 7201M
100142 7201M
100157 7201M
100158 7201M
100159 7201M
100160 7201M
100212 7201M
100213 7201M
100214 7201M
100215 7201M
100216 7201M
100649 7201M
100650 7201M
100651 7201M
100652 7201M
100653 7201M
101038 7192M
101039 7192M
101040 7192M
101041 7192M
101042 7192M
101043 7192M
101044 7192M
101045 7192M
101046 7192M
101134 7200M
101135 7200M
101136 7200M
101137 7200M
101138 7200M
101139 7200M
101140 7200M
101141 7200M
101142 7200M