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 (
    98003, 98004, 98005, 98006, 98007, 98008, 
    98009, 98010, 98011, 98012, 98013, 
    98014, 98015, 98016, 98017, 98018, 
    98019, 98020, 98021, 98022, 98023, 
    98052, 98053, 98054, 98055, 98056, 
    98057, 98058, 98059, 98060, 98061, 
    98062, 98063, 98064, 98065, 98066, 
    98067, 98068, 98069, 98070, 98071, 
    98072, 98073, 98074, 98075, 98076, 
    98077, 98078, 98079, 98080, 98081, 
    98082, 98083, 98149, 98150, 98153, 
    98156, 98176, 98177, 98178, 98179, 
    98180, 98181, 98182, 98183, 98184, 
    98185, 98186, 98187, 98188, 98189, 
    98190, 98191, 98192, 98193, 98194, 
    98195, 98196, 98197, 98198, 98199, 
    98200, 98201, 98202, 98203, 98204, 
    98205, 98206, 98207, 98208, 98209, 
    98210, 98211, 98212, 98213, 98214
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00210

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "155.29"
    },
    "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": 273,
            "rows_produced_per_join": 273,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "27.66",
              "eval_cost": "27.30",
              "prefix_cost": "54.96",
              "data_read_per_join": "4K"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`nuie_scalesta_net`.`cscart_products_categories`.`product_id` in (98003,98004,98005,98006,98007,98008,98009,98010,98011,98012,98013,98014,98015,98016,98017,98018,98019,98020,98021,98022,98023,98052,98053,98054,98055,98056,98057,98058,98059,98060,98061,98062,98063,98064,98065,98066,98067,98068,98069,98070,98071,98072,98073,98074,98075,98076,98077,98078,98079,98080,98081,98082,98083,98149,98150,98153,98156,98176,98177,98178,98179,98180,98181,98182,98183,98184,98185,98186,98187,98188,98189,98190,98191,98192,98193,98194,98195,98196,98197,98198,98199,98200,98201,98202,98203,98204,98205,98206,98207,98208,98209,98210,98211,98212,98213,98214))"
          }
        },
        {
          "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": 13,
            "filtered": "5.00",
            "cost_info": {
              "read_cost": "68.25",
              "eval_cost": "1.37",
              "prefix_cost": "150.51",
              "data_read_per_join": "35K"
            },
            "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": 13,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "3.41",
              "eval_cost": "1.37",
              "prefix_cost": "155.29",
              "data_read_per_join": "218"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "position"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids position
98003 7194M
98004 7194M
98005 7194M
98006 7194M
98007 7194M
98008 7194M
98009 7194M
98010 7194M
98011 7194M
98012 7194M
98013 7194M
98014 7194M
98015 7194M
98016 7194M
98017 7194M
98018 7194M
98019 7194M
98020 7194M
98021 7194M
98022 7194M
98023 7194M
98052 7263M
98053 7263M
98054 7241,7309,7346,7208M
98055 7241,7309,7346,7208M
98056 7241,7309,7346,7208M
98057 7241,7309,7346,7208M
98058 7241,7309,7346,7208M
98059 7241,7309,7346,7208M
98060 7241,7309,7346,7208M
98061 7241,7309,7346,7208M
98062 7241,7309,7346,7208M
98063 7241,7309,7346,7208M
98064 7241,7309,7346,7208M
98065 7241,7309,7346,7208M
98066 7241,7309,7346,7208M
98067 7241,7309,7346,7208M
98068 7241,7309,7346,7208M
98069 7241,7309,7346,7208M
98070 7241,7309,7346,7208M
98071 7241,7309,7346,7208M
98072 7241,7309,7346,7208M
98073 7241,7309,7346,7208M
98074 7241,7309,7346,7208M
98075 7241,7309,7346,7208M
98076 7241,7309,7346,7208M
98077 7241,7309,7346,7208M
98078 7241,7309,7346,7208M
98079 7241,7309,7346,7208M
98080 7241,7309,7346,7208M
98081 7241,7309,7346,7208M
98082 7241,7309,7346,7208M
98083 7241,7309,7346,7208M
98149 7263M
98150 7263M
98153 7263M
98156 7263M
98176 7341,7342,7343,7157M
98177 7341,7342,7343,7157M
98178 7341,7342,7343,7157M
98179 7341,7342,7343,7157M
98180 7341,7342,7343,7157M
98181 7341,7342,7343,7157M
98182 7341,7342,7343,7157M
98183 7341,7342,7343,7157M
98184 7341,7342,7343,7157M
98185 7341,7342,7343,7157M
98186 7341,7342,7343,7157M
98187 7341,7342,7343,7157M
98188 7341,7342,7343,7157M
98189 7341,7342,7343,7157M
98190 7341,7342,7343,7157M
98191 7341,7342,7343,7157M
98192 7226,7225M
98193 7226,7225M
98194 7226,7225M
98195 7226,7225M
98196 7226,7225M
98197 7226,7225M
98198 7226,7225M
98199 7226,7225M
98200 7341,7342,7343,7157M
98201 7341,7342,7343,7157M
98202 7341,7342,7343,7157M
98203 7341,7342,7343,7157M
98204 7341,7342,7343,7157M
98205 7341,7342,7343,7157M
98206 7341,7342,7343,7157M
98207 7341,7342,7343,7157M
98208 7226,7225M
98209 7226,7225M
98210 7226,7225M
98211 7226,7225M
98212 7226,7225M
98213 7226,7225M
98214 7226,7225M