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 (
    572, 571, 570, 569, 568, 678, 679, 680, 
    833, 832, 841, 840, 839, 838, 837, 853, 
    852, 863, 862, 861, 860, 859, 867, 866, 
    865, 864, 872, 871, 870, 869, 868, 874, 
    873, 878, 877, 876, 875
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00096

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "109.10"
    },
    "grouping_operation": {
      "using_temporary_table": true,
      "using_filesort": true,
      "cost_info": {
        "sort_cost": "4.96"
      },
      "nested_loop": [
        {
          "table": {
            "table_name": "cscart_categories",
            "access_type": "ALL",
            "possible_keys": [
              "PRIMARY",
              "c_status",
              "p_category_id"
            ],
            "rows_examined_per_scan": 125,
            "rows_produced_per_join": 5,
            "filtered": "4.00",
            "cost_info": {
              "read_cost": "29.49",
              "eval_cost": "1.00",
              "prefix_cost": "30.49",
              "data_read_per_join": "20K"
            },
            "used_columns": [
              "category_id",
              "storefront_id",
              "usergroup_ids",
              "status"
            ],
            "attached_condition": "((`cscart`.`cscart_categories`.`storefront_id` in (0,1)) and ((`cscart`.`cscart_categories`.`usergroup_ids` = '') or find_in_set(0,`cscart`.`cscart_categories`.`usergroup_ids`) or find_in_set(1,`cscart`.`cscart_categories`.`usergroup_ids`)) and (`cscart`.`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": [
              "cscart.cscart_categories.category_id"
            ],
            "rows_examined_per_scan": 12,
            "rows_produced_per_join": 4,
            "filtered": "8.27",
            "index_condition": "(`cscart`.`cscart_products_categories`.`product_id` in (572,571,570,569,568,678,679,680,833,832,841,840,839,838,837,853,852,863,862,861,860,859,867,866,865,864,872,871,870,869,868,874,873,878,877,876,875))",
            "cost_info": {
              "read_cost": "61.65",
              "eval_cost": "0.99",
              "prefix_cost": "104.14",
              "data_read_per_join": "79"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids
568 300M,388
569 300M,388
570 300M,388
571 388,300M
572 388,300M
678 317,303M,315
679 317,303M,315
680 303M,315,317
832 301,374M,366
833 301,374M,366
837 368M,301,302
838 368M,301,302
839 368M,301,302
840 302,368M,301
841 302,368M,301
852 301,302,369M
853 301,302,369M
859 369M,301,302
860 369M,301,302
861 369M,301,302
862 302,369M,301
863 301,302,369M
864 301,302,369M
865 369M,301,302
866 369M,301,302
867 369M,301,302
868 302,369M,301
869 302,369M,301
870 301,302,369M
871 301,302,369M
872 369M,301,302
873 301,302,370M
874 370M,301,302
875 302,369M,301
876 301,302,369M
877 301,302,369M
878 301,302,369M