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 = 7228 
WHERE 
  cscart_products_categories.product_id IN (
    86866, 91330, 86262, 86280, 86300, 86326, 
    91328, 86867, 86270, 86291, 86299, 
    86325, 91329, 86261, 86244, 86269, 
    86290, 86292, 86318, 86271, 87736, 
    86281, 86346, 86350, 91327, 91426, 
    86283, 87745, 86256, 86309, 86369, 
    86272, 86374, 86298, 86324, 86282, 
    86311, 86327, 86260, 86308, 91326, 
    86243, 87748, 86378, 86246, 86268, 
    86289, 86277, 87744, 91425, 86304, 
    86317, 91424, 87751, 91325, 86373, 
    86310, 86347, 86351, 87753, 86344, 
    86348, 86276, 86376, 86353, 86303, 
    86316, 86254, 86306, 86371, 86313, 
    86329, 86312, 86328, 86245, 86345, 
    86349, 87743, 86865, 87747, 86259, 
    86307, 91422, 91423, 87742, 86297, 
    86323, 86273, 86305, 86377, 86296, 
    86322, 86372, 87750, 86375, 87746
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00647

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "129.15"
    },
    "grouping_operation": {
      "using_temporary_table": true,
      "using_filesort": true,
      "cost_info": {
        "sort_cost": "5.48"
      },
      "nested_loop": [
        {
          "table": {
            "table_name": "cscart_categories",
            "access_type": "ALL",
            "possible_keys": [
              "PRIMARY",
              "c_status",
              "p_category_id"
            ],
            "rows_examined_per_scan": 208,
            "rows_produced_per_join": 8,
            "filtered": "4.00",
            "cost_info": {
              "read_cost": "20.72",
              "eval_cost": "0.83",
              "prefix_cost": "21.55",
              "data_read_per_join": "21K"
            },
            "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": "cscart_products_categories",
            "access_type": "ref",
            "possible_keys": [
              "PRIMARY",
              "link_type",
              "pt"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "category_id"
            ],
            "key_length": "3",
            "ref": [
              "nuie_scalesta_net.cscart_categories.category_id"
            ],
            "rows_examined_per_scan": 117,
            "rows_produced_per_join": 5,
            "filtered": "0.56",
            "cost_info": {
              "read_cost": "2.33",
              "eval_cost": "0.55",
              "prefix_cost": "121.75",
              "data_read_per_join": "87"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`nuie_scalesta_net`.`cscart_products_categories`.`product_id` in (86866,91330,86262,86280,86300,86326,91328,86867,86270,86291,86299,86325,91329,86261,86244,86269,86290,86292,86318,86271,87736,86281,86346,86350,91327,91426,86283,87745,86256,86309,86369,86272,86374,86298,86324,86282,86311,86327,86260,86308,91326,86243,87748,86378,86246,86268,86289,86277,87744,91425,86304,86317,91424,87751,91325,86373,86310,86347,86351,87753,86344,86348,86276,86376,86353,86303,86316,86254,86306,86371,86313,86329,86312,86328,86245,86345,86349,87743,86865,87747,86259,86307,91422,91423,87742,86297,86323,86273,86305,86377,86296,86322,86372,87750,86375,87746))"
          }
        },
        {
          "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": 5,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "1.37",
              "eval_cost": "0.55",
              "prefix_cost": "123.67",
              "data_read_per_join": "87"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "position"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids position
86243 7228,7230M 0
86244 7228,7230M 0
86245 7228,7230M 0
86246 7228,7230M 0
86254 7231M
86256 7231M
86259 7234M
86260 7231M
86261 7229M
86262 7229M
86268 7231M
86269 7231M
86270 7231M
86271 7229M
86272 7229M
86273 7231M
86276 7229M
86277 7229M
86280 7229M
86281 7229M
86282 7229M
86283 7229M
86289 7231M
86290 7231M
86291 7231M
86292 7231M
86296 7231M
86297 7234M
86298 7231M
86299 7231M
86300 7231M
86303 7231M
86304 7231M
86305 7231M
86306 7231M
86307 7234M
86308 7231M
86309 7231M
86310 7229M
86311 7231M
86312 7231M
86313 7234M
86316 7231M
86317 7231M
86318 7231M
86322 7231M
86323 7234M
86324 7231M
86325 7231M
86326 7231M
86327 7231M
86328 7231M
86329 7234M
86344 7231M
86345 7231M
86346 7231M
86347 7231M
86348 7231M
86349 7231M
86350 7231M
86351 7231M
86353 7229M
86369 7228,7230,7233M 0
86371 7228,7230,7236M 0
86372 7228,7230,7236M 0
86373 7228,7230,7236M 0
86374 7228,7230,7236M 0
86375 7228,7230,7236M 0
86376 7228,7230,7236M 0
86377 7228,7230,7236M 0
86378 7228,7230,7236M 0
86865 7229M
86866 7228,7230,7233M 0
86867 7229M
87736 7228,7230,7233M 0
87742 7229M
87743 7228,7250M 0
87744 7228,7250M 0
87745 7228,7250M 0
87746 7228,7250M 0
87747 7228,7250M 0
87748 7228,7250M 0
87750 7228,7250M 0
87751 7228,7250M 0
87753 7229M
91325 7228M,7250 0
91326 7228M,7250 0
91327 7228M,7250 0
91328 7228M,7250 0
91329 7228M,7250 0
91330 7228M,7250 0
91422 7228M,7250 0
91423 7228M,7250 0
91424 7228M,7250 0
91425 7228M,7250 0
91426 7228M,7250 0