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 (
    96579, 96580, 96581, 96582, 96583, 96584, 
    96585, 96586, 96587, 96588, 96589, 
    96590, 96591, 96592, 96593, 96594, 
    96595, 96596, 96597, 96598, 96599, 
    96600, 96677, 96679, 96684, 96685, 
    96693, 98445, 98682, 99369, 99370, 
    99371, 99372, 99373, 99399, 99400, 
    99401, 99402, 99403, 99507, 99511, 
    99515, 100361, 100362, 100363, 100364, 
    100365, 100366, 100367, 100368, 100369, 
    100370, 100371, 100372, 100373, 100384, 
    100385, 100540, 100541, 100542, 100543, 
    100544, 100545, 100546, 100547, 100548, 
    100549, 100550, 100551, 100552, 100553, 
    100554, 100555, 100556, 100557, 100558, 
    100559, 100560, 100561, 100562, 100563, 
    100564, 100565, 100566, 100567, 100568, 
    100569, 100570, 100571, 100572, 100573, 
    100574, 100575, 100576, 100577, 100578
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.01902

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 (96579,96580,96581,96582,96583,96584,96585,96586,96587,96588,96589,96590,96591,96592,96593,96594,96595,96596,96597,96598,96599,96600,96677,96679,96684,96685,96693,98445,98682,99369,99370,99371,99372,99373,99399,99400,99401,99402,99403,99507,99511,99515,100361,100362,100363,100364,100365,100366,100367,100368,100369,100370,100371,100372,100373,100384,100385,100540,100541,100542,100543,100544,100545,100546,100547,100548,100549,100550,100551,100552,100553,100554,100555,100556,100557,100558,100559,100560,100561,100562,100563,100564,100565,100566,100567,100568,100569,100570,100571,100572,100573,100574,100575,100576,100577,100578))"
          }
        },
        {
          "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
96579 7270M
96580 7270M
96581 7272M
96582 7274M
96583 7274M
96584 7270M
96585 7270M
96586 7270M
96587 7270M
96588 7270M
96589 7270M
96590 7270M
96591 7270M
96592 7270M
96593 7270M
96594 7270M
96595 7270M
96596 7270M
96597 7268M
96598 7272M
96599 7272M
96600 7268M
96677 7291M
96679 7239M
96684 7291M
96685 7291M
96693 7291M
98445 7291M
98682 7239M
99369 7352M
99370 7352M
99371 7352M
99372 7352M
99373 7352M
99399 7352M
99400 7352M
99401 7352M
99402 7352M
99403 7352M
99507 7291M
99511 7291M
99515 7291M
100361 7291M
100362 7291M
100363 7291M
100364 7291M
100365 7291M
100366 7291M
100367 7291M
100368 7291M
100369 7291M
100370 7291M
100371 7291M
100372 7291M
100373 7291M
100384 7291M
100385 7291M
100540 7352M
100541 7352M
100542 7352M
100543 7352M
100544 7352M
100545 7268M
100546 7274M
100547 7270M
100548 7270M
100549 7270M
100550 7272M
100551 7270M
100552 7270M
100553 7270M
100554 7270M
100555 7270M
100556 7270M
100557 7270M
100558 7270M
100559 7272M
100560 7272M
100561 7270M
100562 7272M
100563 7272M
100564 7270M
100565 7270M
100566 7270M
100567 7270M
100568 7270M
100569 7270M
100570 7270M
100571 7270M
100572 7270M
100573 7270M
100574 7270M
100575 7270M
100576 7270M
100577 7270M
100578 7270M