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 (
    415843, 426635, 454483, 442900, 441777, 
    426668, 454832, 445457, 454320, 455896, 
    403718, 460902, 408640, 423654, 437901, 
    451860, 447040, 402866, 419169, 440094, 
    409667, 433404, 420606, 408565, 433472, 
    447503, 450998, 443550, 410176, 402299, 
    430972, 411202, 455412, 410174, 406336, 
    448009, 406620, 436269, 405540, 412564, 
    445609, 447614, 455410, 424644, 420153, 
    458565, 407216, 417702
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00087

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost": 0.161436522,
    "nested_loop": [
      {
        "table": {
          "table_name": "cscart_products_categories",
          "access_type": "range",
          "possible_keys": ["PRIMARY", "pt"],
          "key": "pt",
          "key_length": "3",
          "used_key_parts": ["product_id"],
          "loops": 1,
          "rows": 48,
          "cost": 0.08683616,
          "filtered": 100,
          "attached_condition": "cscart_products_categories.product_id in (415843,426635,454483,442900,441777,426668,454832,445457,454320,455896,403718,460902,408640,423654,437901,451860,447040,402866,419169,440094,409667,433404,420606,408565,433472,447503,450998,443550,410176,402299,430972,411202,455412,410174,406336,448009,406620,436269,405540,412564,445609,447614,455410,424644,420153,458565,407216,417702)",
          "using_index": true
        }
      },
      {
        "table": {
          "table_name": "cscart_categories",
          "access_type": "eq_ref",
          "possible_keys": ["PRIMARY", "c_status", "p_category_id"],
          "key": "PRIMARY",
          "key_length": "3",
          "used_key_parts": ["category_id"],
          "ref": ["u985510652_ecartify.cscart_products_categories.category_id"],
          "loops": 48,
          "rows": 1,
          "cost": 0.04375232,
          "filtered": 100,
          "attached_condition": "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')"
        }
      }
    ]
  }
}

Result

product_id category_ids
402299 289M
402866 495M
403718 500M
405540 498M
406336 305M
406620 289M
407216 289M
408565 289M
408640 495M
409667 289M
410174 498M
410176 305M
411202 495M
412564 289M
415843 289M
417702 305M
419169 305M
420153 495M
420606 498M
423654 500M
424644 495M
426635 495M
426668 500M
430972 289M
433404 495M
433472 305M
436269 289M
437901 500M
440094 495M
441777 500M
442900 495M
443550 495M
445457 495M
445609 495M
447040 305M
447503 500M
447614 498M
448009 495M
450998 305M
451860 305M
454320 498M
454483 500M
454832 500M
455410 305M
455412 495M
455896 500M
458565 289M
460902 289M