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 (
    51297, 51296, 139, 51300, 51299, 51298, 
    51304, 51303, 51302, 51301, 138, 51443, 
    51309, 51308, 51307, 51306, 51305, 
    129, 54, 51313, 51312, 51314, 51311, 
    51310, 51361, 30, 51362, 51363, 51364, 
    51365, 31, 51366, 51367, 51368, 51369, 
    46, 51370, 51371, 51372, 51373, 51452, 
    51453, 42, 51376, 51377, 51378, 51379, 
    51380, 88, 51395, 51396, 51397, 51555, 
    51556
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00201

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "164.82"
    },
    "grouping_operation": {
      "using_temporary_table": true,
      "using_filesort": true,
      "cost_info": {
        "sort_cost": "26.69"
      },
      "nested_loop": [
        {
          "table": {
            "table_name": "cscart_categories",
            "access_type": "ALL",
            "possible_keys": [
              "PRIMARY",
              "c_status",
              "p_category_id"
            ],
            "rows_examined_per_scan": 383,
            "rows_produced_per_join": 15,
            "filtered": "4.00",
            "cost_info": {
              "read_cost": "40.09",
              "eval_cost": "1.53",
              "prefix_cost": "41.62",
              "data_read_per_join": "81K"
            },
            "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')))"
          }
        },
        {
          "table": {
            "table_name": "cscart_products_categories",
            "access_type": "ref",
            "possible_keys": [
              "PRIMARY",
              "pt"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "category_id"
            ],
            "key_length": "3",
            "ref": [
              "test_uchur_k.cscart_categories.category_id"
            ],
            "rows_examined_per_scan": 18,
            "rows_produced_per_join": 26,
            "filtered": "9.68",
            "index_condition": "(`test_uchur_k`.`cscart_products_categories`.`product_id` in (51297,51296,139,51300,51299,51298,51304,51303,51302,51301,138,51443,51309,51308,51307,51306,51305,129,54,51313,51312,51314,51311,51310,51361,30,51362,51363,51364,51365,31,51366,51367,51368,51369,46,51370,51371,51372,51373,51452,51453,42,51376,51377,51378,51379,51380,88,51395,51396,51397,51555,51556))",
            "cost_info": {
              "read_cost": "68.94",
              "eval_cost": "2.67",
              "prefix_cost": "138.14",
              "data_read_per_join": "426"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids
30 44,18,391,40M
31 43,391,18,40M
42 45,391,18M
46 42,18,391,40M
54 44,24,40M
88 235,42,40M
129 42,24,40M
138 42,24,40M
139 42,24,40M
51296 24,42,40M
51297 24,42,40M
51298 42,24,40M
51299 24,42,40M
51300 24,42,40M
51301 24,42,40M
51302 24,42,40M
51303 24,42,40M
51304 24,42,40M
51305 24,42,40M
51306 24,42,40M
51307 24,42,40M
51308 42,24,40M
51309 24,42,40M
51310 24,44,40M
51311 24,44,40M
51312 24,44,40M
51313 24,44,40M
51314 24,44,40M
51361 391,18,44,40M
51362 391,18,44,40M
51363 391,18,44,40M
51364 391,18,44,40M
51365 18,44,391,40M
51366 18,391,43,40M
51367 391,43,18,40M
51368 391,43,18,40M
51369 391,43,18,40M
51370 391,18,42,40M
51371 391,18,42,40M
51372 391,18,42,40M
51373 391,18,42,40M
51376 45,391,18M
51377 45,391,18M
51378 391,45,18M
51379 391,45,18M
51380 391,45,18M
51395 235,42,40M
51396 42,235,40M
51397 235,42,40M
51443 42,24,40M
51452 18,42,391,40M
51453 18,42,391,40M
51555 42,235,40M
51556 235,42,40M