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 = 7210 
WHERE 
  cscart_products_categories.product_id IN (
    94831, 94839, 94840, 94841, 94843, 94850, 
    94851, 94852, 94853, 95309, 95315, 
    95316, 95318, 95319, 95365, 95366, 
    95367, 95368, 95369, 95370, 95371, 
    95372, 95373, 95374, 95375, 95376, 
    95377, 95736, 95756, 95757, 95758, 
    95759, 95760, 95761, 95762, 95763, 
    95768, 95769, 95770, 95771, 95772, 
    95773, 95774, 95775, 95776, 95777, 
    95778, 95779
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00148

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "55.34"
    },
    "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": 97,
            "rows_produced_per_join": 97,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "10.00",
              "eval_cost": "9.70",
              "prefix_cost": "19.70",
              "data_read_per_join": "1K"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`nuie_scalesta_net`.`cscart_products_categories`.`product_id` in (94831,94839,94840,94841,94843,94850,94851,94852,94853,95309,95315,95316,95318,95319,95365,95366,95367,95368,95369,95370,95371,95372,95373,95374,95375,95376,95377,95736,95756,95757,95758,95759,95760,95761,95762,95763,95768,95769,95770,95771,95772,95773,95774,95775,95776,95777,95778,95779))"
          }
        },
        {
          "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.25",
              "eval_cost": "0.49",
              "prefix_cost": "53.65",
              "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.21",
              "eval_cost": "0.49",
              "prefix_cost": "55.34",
              "data_read_per_join": "77"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "position"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids position
94831 7262,7256M
94839 7265,7247M
94840 7265,7247M
94841 7265,7247M
94843 7345,7347,7259M
94850 7345,7347,7259M
94851 7258M
94852 7345,7347,7259M
94853 7320,7260M
95309 7345,7347,7259M
95315 7258M
95316 7345,7347,7259M
95318 7258M
95319 7265,7247M
95365 7265,7247M
95366 7265,7247M
95367 7265,7247M
95368 7265,7247M
95369 7265,7247M
95370 7265,7247M
95371 7265,7247M
95372 7265,7247M
95373 7265,7247M
95374 7265,7247M
95375 7265,7247M
95376 7345,7347,7259M
95377 7265,7247M
95736 7262,7256M
95756 7320,7260M
95757 7349,7261M
95758 7320,7260M
95759 7349,7261M
95760 7258M
95761 7258M
95762 7345,7347,7259M
95763 7258M
95768 7258M
95769 7258M
95770 7320,7260M
95771 7320,7260M
95772 7320,7260M
95773 7349,7261M
95774 7320,7260M
95775 7320,7260M
95776 7320,7260M
95777 7349,7261M
95778 7345,7347,7259M
95779 7345,7347,7259M