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 = 7145 
WHERE 
  cscart_products_categories.product_id IN (
    96723, 96725, 96728, 96752, 96767, 97011, 
    97013, 97018, 97021, 97034, 97037, 
    97041, 97044, 97047, 97050, 97052, 
    97053, 97056, 97811, 97812, 97815, 
    97835, 97836, 97839, 97989, 97990, 
    97993, 98031, 98032, 98035, 98158, 
    98160, 98162, 98164, 98166, 98168, 
    98250, 98251, 98252, 98253, 98254, 
    98255, 98256, 98257, 98687, 98689, 
    98698, 98699, 98739, 98741, 98743, 
    98745, 98747, 98749, 99571, 99572, 
    99580, 99582, 99584, 99586, 100067, 
    100069, 100072, 100152, 100153, 100156, 
    100169, 100171, 100173, 100176, 100178, 
    100180, 100321, 100323, 100326, 100605, 
    100606, 100610, 100884, 100887, 100900, 
    100903, 100907, 100910, 100913, 100916, 
    100918, 100919, 100922, 101112, 101115, 
    101121, 101124, 101130, 101133, 101514
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00095

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 (96723,96725,96728,96752,96767,97011,97013,97018,97021,97034,97037,97041,97044,97047,97050,97052,97053,97056,97811,97812,97815,97835,97836,97839,97989,97990,97993,98031,98032,98035,98158,98160,98162,98164,98166,98168,98250,98251,98252,98253,98254,98255,98256,98257,98687,98689,98698,98699,98739,98741,98743,98745,98747,98749,99571,99572,99580,99582,99584,99586,100067,100069,100072,100152,100153,100156,100169,100171,100173,100176,100178,100180,100321,100323,100326,100605,100606,100610,100884,100887,100900,100903,100907,100910,100913,100916,100918,100919,100922,101112,101115,101121,101124,101130,101133,101514))"
          }
        },
        {
          "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
96723 7145M 0
96725 7145M 0
96728 7145M 0
96752 7145M 0
96767 7145M 0
97011 7145M 0
97013 7145M 0
97018 7145M 0
97021 7145M 0
97034 7145M 0
97037 7145M 0
97041 7145M 0
97044 7145M 0
97047 7145M 0
97050 7145M 0
97052 7145M 0
97053 7145M 0
97056 7145M 0
97811 7145M 0
97812 7145M 0
97815 7145M 0
97835 7145M 0
97836 7145M 0
97839 7145M 0
97989 7145M 0
97990 7145M 0
97993 7145M 0
98031 7145M 0
98032 7145M 0
98035 7145M 0
98158 7145M 0
98160 7145M 0
98162 7145M 0
98164 7145M 0
98166 7145M 0
98168 7145M 0
98250 7145M 0
98251 7145M 0
98252 7145M 0
98253 7145M 0
98254 7145M 0
98255 7145M 0
98256 7145M 0
98257 7145M 0
98687 7145M 0
98689 7145M 0
98698 7145M 0
98699 7145M 0
98739 7145M 0
98741 7145M 0
98743 7145M 0
98745 7145M 0
98747 7145M 0
98749 7145M 0
99571 7145M 0
99572 7145M 0
99580 7145M 0
99582 7145M 0
99584 7145M 0
99586 7145M 0
100067 7145M 0
100069 7145M 0
100072 7145M 0
100152 7145M 0
100153 7145M 0
100156 7145M 0
100169 7145M 0
100171 7145M 0
100173 7145M 0
100176 7145M 0
100178 7145M 0
100180 7145M 0
100321 7145M 0
100323 7145M 0
100326 7145M 0
100605 7145M 0
100606 7145M 0
100610 7145M 0
100884 7145M 0
100887 7145M 0
100900 7145M 0
100903 7145M 0
100907 7145M 0
100910 7145M 0
100913 7145M 0
100916 7145M 0
100918 7145M 0
100919 7145M 0
100922 7145M 0
101112 7145M 0
101115 7145M 0
101121 7145M 0
101124 7145M 0
101130 7145M 0
101133 7145M 0
101514 7145M 0