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 (
    584, 573, 561, 556, 553, 549, 545, 541, 
    525, 521, 517, 513, 507, 497, 492, 489, 
    486, 482, 455, 453, 452, 451, 450, 449, 
    448, 447, 446, 445, 444, 443, 442, 394, 
    378, 377, 371, 369, 368, 362, 228, 219, 
    218, 217, 212, 211, 210, 209, 207, 206, 
    204, 202, 197, 196, 195, 192, 189, 187, 
    184, 181, 177, 155, 154, 151, 107, 106, 
    105, 104, 103, 102, 101, 100, 82, 71, 
    51, 10, 9
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00119

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "15.60"
    },
    "grouping_operation": {
      "using_temporary_table": true,
      "using_filesort": true,
      "cost_info": {
        "sort_cost": "5.74"
      },
      "nested_loop": [
        {
          "table": {
            "table_name": "cscart_categories",
            "access_type": "ALL",
            "possible_keys": [
              "PRIMARY",
              "c_status",
              "p_category_id"
            ],
            "rows_examined_per_scan": 20,
            "rows_produced_per_join": 1,
            "filtered": "5.00",
            "cost_info": {
              "read_cost": "2.52",
              "eval_cost": "0.10",
              "prefix_cost": "2.62",
              "data_read_per_join": "2K"
            },
            "used_columns": [
              "category_id",
              "usergroup_ids",
              "status",
              "storefront_id"
            ],
            "attached_condition": "((`betaatif_store`.`cscart_categories`.`storefront_id` in (0,1)) and ((`betaatif_store`.`cscart_categories`.`usergroup_ids` = '') or (0 <> find_in_set(0,`betaatif_store`.`cscart_categories`.`usergroup_ids`)) or (0 <> find_in_set(1,`betaatif_store`.`cscart_categories`.`usergroup_ids`))) and (`betaatif_store`.`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": [
              "betaatif_store.cscart_categories.category_id"
            ],
            "rows_examined_per_scan": 43,
            "rows_produced_per_join": 5,
            "filtered": "13.35",
            "index_condition": "(`betaatif_store`.`cscart_products_categories`.`product_id` in (584,573,561,556,553,549,545,541,525,521,517,513,507,497,492,489,486,482,455,453,452,451,450,449,448,447,446,445,444,443,442,394,378,377,371,369,368,362,228,219,218,217,212,211,210,209,207,206,204,202,197,196,195,192,189,187,184,181,177,155,154,151,107,106,105,104,103,102,101,100,82,71,51,10,9))",
            "cost_info": {
              "read_cost": "2.94",
              "eval_cost": "0.57",
              "prefix_cost": "9.86",
              "data_read_per_join": "91"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids
9 15M
10 15M
51 17M
71 15M
82 14M
100 20M
101 20M
102 20M
103 20M
104 20M
105 20M
106 20M
107 20M
151 5M
154 5M
155 17M
177 5M
181 5M
184 5M
187 5M
189 15M
192 15M
195 15M
196 5M
197 17M
202 16M
204 16M
206 5M
207 16M
209 5M
210 17M
211 16M
212 5M
217 16M
218 16M
219 16M
228 15M
362 15M
368 15M
369 15M
371 15M
377 15M
378 12M
394 12M
442 12M
443 12M
444 12M
445 12M
446 12M
447 12M
448 12M
449 12M
450 12M
451 12M
452 12M
453 12M
455 12M
482 12M
486 12M
489 12M
492 12M
497 12M
507 12M
513 12M
517 12M
521 12M
525 12M
541 12M
545 12M
549 12M
553 12M
556 12M
561 12M
573 12M
584 12M