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 = 372 
WHERE 
  cscart_products_categories.product_id IN (
    10997, 11048, 11049, 11059, 11098, 11113, 
    11262, 11283, 11314, 11329, 10041, 
    10241, 10536, 10556, 10969, 10971, 
    10985, 10998, 11001, 11007, 11051, 
    11053, 11056, 11179, 11181, 11192, 
    11243, 11328, 8862, 10184, 10296, 10549, 
    10990, 11010, 11012, 11043, 11052, 
    11054, 11060, 11062
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00229

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "77.86"
    },
    "grouping_operation": {
      "using_filesort": false,
      "nested_loop": [
        {
          "table": {
            "table_name": "cscart_products_categories",
            "access_type": "range",
            "possible_keys": [
              "PRIMARY",
              "pt"
            ],
            "key": "pt",
            "used_key_parts": [
              "product_id"
            ],
            "key_length": "3",
            "rows_examined_per_scan": 83,
            "rows_produced_per_join": 83,
            "filtered": "100.00",
            "index_condition": "(`softwarepirmam_hewadelivard_cscart_4`.`cscart_products_categories`.`product_id` in (10997,11048,11049,11059,11098,11113,11262,11283,11314,11329,10041,10241,10536,10556,10969,10971,10985,10998,11001,11007,11051,11053,11056,11179,11181,11192,11243,11328,8862,10184,10296,10549,10990,11010,11012,11043,11052,11054,11060,11062))",
            "cost_info": {
              "read_cost": "39.06",
              "eval_cost": "8.30",
              "prefix_cost": "47.36",
              "data_read_per_join": "1K"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ]
          }
        },
        {
          "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": [
              "softwarepirmam_hewadelivard_cscart_4.cscart_products_categories.category_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 4,
            "filtered": "5.00",
            "cost_info": {
              "read_cost": "20.75",
              "eval_cost": "0.42",
              "prefix_cost": "76.41",
              "data_read_per_join": "13K"
            },
            "used_columns": [
              "category_id",
              "storefront_id",
              "usergroup_ids",
              "status"
            ],
            "attached_condition": "((`softwarepirmam_hewadelivard_cscart_4`.`cscart_categories`.`storefront_id` in (0,1)) and ((`softwarepirmam_hewadelivard_cscart_4`.`cscart_categories`.`usergroup_ids` = '') or (0 <> find_in_set(0,`softwarepirmam_hewadelivard_cscart_4`.`cscart_categories`.`usergroup_ids`)) or (0 <> find_in_set(1,`softwarepirmam_hewadelivard_cscart_4`.`cscart_categories`.`usergroup_ids`))) and (`softwarepirmam_hewadelivard_cscart_4`.`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",
              "softwarepirmam_hewadelivard_cscart_4.cscart_products_categories.product_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 4,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "1.04",
              "eval_cost": "0.42",
              "prefix_cost": "77.86",
              "data_read_per_join": "66"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "position"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids position
8862 372M 0
10041 574M
10184 467M
10241 466M
10296 459M
10536 467M
10549 372M 0
10556 466M
10969 372,572,582M 0
10971 467M
10985 574M
10990 574M
10997 574M
10998 574M
11001 573,575M
11007 573M
11010 562,560M
11012 562,560M
11043 587M
11048 587M
11049 587M
11051 574M
11052 587M
11053 587M
11054 573M
11056 574M
11059 666,667M
11060 667,666M
11062 667,666M
11098 556,554M
11113 667,666M
11179 595M
11181 595M
11192 566M
11243 459M
11262 554,556M
11283 556,554M
11314 556,554M
11328 597M
11329 579M