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 
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') 
WHERE 
  cscart_products_categories.product_id IN (
    51272, 51271, 51270, 51269, 51268, 51267, 
    51266, 145, 60, 14, 127, 51325, 63, 50984, 
    51450, 51451, 51329, 51328, 51327, 
    50985, 51331, 51330, 50986, 51332, 
    51339, 51338, 51337, 51336, 50988, 
    113, 6, 136, 50992, 51374, 51375, 42, 
    51376, 51377, 51378, 51379, 51380, 
    50993, 51381, 51382, 134
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00131

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "89.66"
    },
    "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": 98,
            "rows_produced_per_join": 98,
            "filtered": "100.00",
            "index_condition": "(`test_uchur_k`.`cscart_products_categories`.`product_id` in (51272,51271,51270,51269,51268,51267,51266,145,60,14,127,51325,63,50984,51450,51451,51329,51328,51327,50985,51331,51330,50986,51332,51339,51338,51337,51336,50988,113,6,136,50992,51374,51375,42,51376,51377,51378,51379,51380,50993,51381,51382,134))",
            "cost_info": {
              "read_cost": "45.56",
              "eval_cost": "9.80",
              "prefix_cost": "55.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": [
              "test_uchur_k.cscart_products_categories.category_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 4,
            "filtered": "5.00",
            "cost_info": {
              "read_cost": "24.50",
              "eval_cost": "0.49",
              "prefix_cost": "89.66",
              "data_read_per_join": "25K"
            },
            "used_columns": [
              "category_id",
              "storefront_id",
              "usergroup_ids",
              "status"
            ],
            "attached_condition": "((`test_uchur_k`.`cscart_categories`.`storefront_id` in (0,1)) and ((`test_uchur_k`.`cscart_categories`.`usergroup_ids` = '') or (0 <> find_in_set(0,`test_uchur_k`.`cscart_categories`.`usergroup_ids`)) or (0 <> find_in_set(1,`test_uchur_k`.`cscart_categories`.`usergroup_ids`))) and (`test_uchur_k`.`cscart_categories`.`status` in ('A','H')))"
          }
        }
      ]
    }
  }
}

Result

product_id category_ids
6 6,42,40M
14 6,42,40M
42 45,391,18M
60 6,42,40M
63 45,394,8M
113 6,42,40M
127 45,34M
134 10,45M
136 45,394,37M
145 42,7,390,40M
50984 45,10M
50985 10M
50986 10M
50988 10M
50992 25M
50993 25M
51266 390,42,7,40M
51267 390,7,42,40M
51268 390,42,7,40M
51269 42,7,390,40M
51270 7,390,42,40M
51271 390,42,7,40M
51272 42,390,7,40M
51325 45,34M
51327 10M
51328 10M
51329 10M
51330 10M
51331 10M
51332 10M
51336 10M
51337 10M
51338 10M
51339 10M
51374 25M
51375 25M
51376 45,391,18M
51377 45,391,18M
51378 391,45,18M
51379 391,45,18M
51380 391,45,18M
51381 25M
51382 25M
51450 45,10M
51451 45,10M