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 = 7237 
WHERE 
  cscart_products_categories.product_id IN (
    89656, 89698, 89655, 86874, 88375, 88376, 
    88331, 88332, 88339, 88370, 88371, 
    89697, 88328, 88327, 88329, 88326, 
    86872, 88368, 88369, 88373, 86875, 
    88325, 86883, 86870, 88372, 88324, 
    88367, 88323, 86868, 86871, 86873, 
    88366, 86869, 86881, 86878, 86879, 
    89720, 86876, 86886, 89719, 89722, 
    86877, 86882, 86884, 86885, 89579, 
    89581, 89583
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00722

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "86.69"
    },
    "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 (89656,89698,89655,86874,88375,88376,88331,88332,88339,88370,88371,89697,88328,88327,88329,88326,86872,88368,88369,88373,86875,88325,86883,86870,88372,88324,88367,88323,86868,86871,86873,88366,86869,86881,86878,86879,89720,86876,86886,89719,89722,86877,86882,86884,86885,89579,89581,89583))"
          }
        },
        {
          "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": 96,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "24.00",
              "eval_cost": "9.60",
              "prefix_cost": "53.09",
              "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": "24.00",
              "eval_cost": "0.48",
              "prefix_cost": "86.69",
              "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
86868 7239M
86869 7239M
86870 7239M
86871 7239M
86872 7239M
86873 7239M
86874 7239M
86875 7239M
86876 7239M
86877 7239M
86878 7239M
86879 7239M
86881 7239M
86882 7239M
86883 7239M
86884 7239M
86885 7239M
86886 7239M
88323 7268,7237,7276M 0
88324 7268,7237,7276M 0
88325 7268,7276M,7237 0
88326 7270,7277M,7237 0
88327 7270,7277M,7237 0
88328 7270,7277M,7237 0
88329 7276M,7268,7237 0
88331 7237,7270,7277M 0
88332 7270,7277M,7237 0
88339 7237,7277M,7270 0
88366 7237,7280M,7274 0
88367 7237,7274,7280M 0
88368 7237,7272,7281M 0
88369 7237,7281M,7272 0
88370 7272,7237,7281M 0
88371 7272,7281M,7237 0
88372 7237,7274,7280M 0
88373 7274,7237,7280M 0
88375 7281M,7237,7272 0
88376 7281M,7272,7237 0
89579 7291M
89581 7291M
89583 7291M
89655 7268,7292M,7237 0
89656 7268,7292M,7237 0
89697 7295M,7237,7274 0
89698 7274,7237,7295M 0
89719 7239M
89720 7239M
89722 7239M