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 = 7148 
WHERE 
  cscart_products_categories.product_id IN (
    91876, 82387, 85040, 85563, 86332, 91312, 
    91314, 91316, 86077, 86078, 88929, 
    90263, 90270, 82434, 85545, 88858, 
    88859, 90817, 90818, 90269, 90275, 
    92357, 85568, 90265, 85041, 85544, 
    84237, 85548, 85558, 82388, 82365, 
    84752, 92593, 92594, 92595, 92596, 
    92893, 92894, 92913, 92914, 92915, 
    92916, 92917, 92918, 92919, 92920, 
    92921, 93002
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00226

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "68.40"
    },
    "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": 120,
            "rows_produced_per_join": 120,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "12.30",
              "eval_cost": "12.00",
              "prefix_cost": "24.30",
              "data_read_per_join": "1K"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`nuie_scalesta_net`.`cscart_products_categories`.`product_id` in (91876,82387,85040,85563,86332,91312,91314,91316,86077,86078,88929,90263,90270,82434,85545,88858,88859,90817,90818,90269,90275,92357,85568,90265,85041,85544,84237,85548,85558,82388,82365,84752,92593,92594,92595,92596,92893,92894,92913,92914,92915,92916,92917,92918,92919,92920,92921,93002))"
          }
        },
        {
          "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": 6,
            "filtered": "5.00",
            "cost_info": {
              "read_cost": "30.00",
              "eval_cost": "0.60",
              "prefix_cost": "66.30",
              "data_read_per_join": "15K"
            },
            "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": 6,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "1.50",
              "eval_cost": "0.60",
              "prefix_cost": "68.40",
              "data_read_per_join": "96"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "position"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids position
82365 7148,7149,7152M 0
82387 7148,7149,7152M 0
82388 7148,7149,7152M 0
82434 7148,7158M 0
84237 7341,7342,7343,7157M
84752 7148,7149,7152M 0
85040 7148,7207M 0
85041 7148,7207M 0
85544 7313,7338,7219M
85545 7341,7342,7343,7157M
85548 7341,7342,7343,7157M
85558 7313,7338,7219M
85563 7148,7158M 0
85568 7313,7338,7219M
86077 7226,7225M
86078 7226,7225M
86332 7148,7149,7152M 0
88858 7148,7158M 0
88859 7148,7158M 0
88929 7148,7158M 0
90263 7183,7283,7167M
90265 7183,7283,7167M
90269 7183,7283,7167M
90270 7183,7283,7167M
90275 7183,7283,7167M
90817 7148,7158,7159M 0
90818 7148,7158,7159M 0
91312 7183,7283,7167M
91314 7183,7283,7167M
91316 7183,7283,7167M
91876 7341,7342,7343,7157M
92357 7156,7157,7148M 0
92593 7303,7161M
92594 7303,7161M
92595 7303,7161M
92596 7303,7161M
92893 7241,7309,7346,7208M
92894 7241,7309,7346,7208M
92913 7194M
92914 7194M
92915 7194M
92916 7194M
92917 7194M
92918 7194M
92919 7194M
92920 7194M
92921 7194M
93002 7241,7309,7346,7208M