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 (
    969, 
    970, 
    636, 
    637, 
    972, 
    973, 
    974, 
    975, 
    945, 
    946, 
    953, 
    954, 
    955, 
    956, 
    957, 
    958, 
    699, 
    700, 
    701, 
    702, 
    774, 
    775, 
    776, 
    777, 
    778, 
    779, 
    780, 
    781, 
    782, 
    783, 
    784, 
    785, 
    786, 
    787, 
    788, 
    789, 
    790, 
    791, 
    792, 
    793, 
    794, 
    795, 
    678, 
    679, 
    680, 
    564, 
    565, 
    566, 
    567, 
    568, 
    569, 
    570, 
    571, 
    572, 
    573, 
    574, 
    575, 
    576, 
    577, 
    578, 
    579, 
    580, 
    581, 
    582, 
    583, 
    584, 
    585, 
    586, 
    592, 
    593, 
    827, 
    828, 
    829, 
    830, 
    831, 
    832, 
    833, 
    834, 
    835, 
    837, 
    838, 
    839, 
    840, 
    841, 
    842, 
    843, 
    844, 
    845, 
    846, 
    847, 
    848, 
    849, 
    850, 
    851, 
    852, 
    853, 
    854, 
    855, 
    856, 
    857, 
    858, 
    859, 
    860, 
    861, 
    862, 
    863, 
    864, 
    865, 
    866, 
    867, 
    868, 
    869, 
    870, 
    871, 
    872, 
    873, 
    874, 
    875, 
    876, 
    877, 
    878, 
    811, 
    812, 
    815, 
    816, 
    817, 
    818, 
    1025, 
    1026, 
    1027
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00172

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "122.11"
    },
    "grouping_operation": {
      "using_temporary_table": true,
      "using_filesort": true,
      "cost_info": {
        "sort_cost": "18.02"
      },
      "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": 18,
            "filtered": "30.03",
            "index_condition": "(`cscart`.`cscart_products_categories`.`product_id` in (969,970,636,637,972,973,974,975,945,946,953,954,955,956,957,958,699,700,701,702,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,678,679,680,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,592,593,827,828,829,830,831,832,833,834,835,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,811,812,815,816,817,818,1025,1026,1027))",
            "cost_info": {
              "read_cost": "61.60",
              "eval_cost": "3.60",
              "prefix_cost": "104.09",
              "data_read_per_join": "288"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids
564 389,300M
565 300M,389
566 389,300M
567 389,300M
568 388,300M
569 388,300M
570 388,300M
571 300M,388
572 388,300M
573 388,300M,403
574 388,300M,403
575 388,300M,403
576 403,388,300M
577 403,388,300M
578 300M,389,403
579 300M,389,403
580 300M,389,403
581 300M,389,403
582 403,300M,389
583 388,403,300M
584 300M,388,403
585 300M,388,403
586 300M,388,403
592 301M,374,366
593 366,301M,374
636 350,309M,310
637 350,309M,310
678 315,317,303M
679 315,317,303M
680 303M,315,317
699 298,404,405M
700 298,404,405M
701 405M,298,404
702 405M,298,404
774 405M,298,404
775 404,405M,298
776 298,404,405M
777 298,404,405M
778 405M,298,404
779 405M,298,404
780 405M,298,404
781 404,405M,298
782 298,404,405M
783 298,404,405M
784 298,404,405M
785 299,298,391M
786 299,298,391M
787 391M,299,298
788 298,391M,299
789 298,391M,299
790 299,298,391M
791 299,298,391M
792 299,298,391M
793 391M,299,298
794 391M,299,298
795 298,391M,299
811 397M,394,392
812 397M,394,392
815 416M,394,392
816 392,416M,394
817 392,416M,394
818 392,416M,394
827 367M,302,301
828 301,367M,302
829 302,301,367M
830 302,301,367M
831 302,301,367M
832 374M,366,301
833 374M,366,301
834 372,373M,301
835 301,372,373M
837 301,368M,302
838 301,368M,302
839 301,368M,302
840 302,301,368M
841 368M,302,301
842 301,368M,302
843 301,368M,302
844 301,368M,302
845 301,368M,302
846 302,301,368M
847 368M,302,301
848 368M,302,301
849 301,368M,302
850 301,368M,302
851 301,368M,302
852 301,369M,302
853 369M,302,301
854 369M,302,301
855 301,369M,302
856 301,369M,302
857 301,369M,302
858 301,369M,302
859 302,301,369M
860 369M,302,301
861 301,369M,302
862 301,369M,302
863 301,369M,302
864 301,369M,302
865 301,369M,302
866 369M,302,301
867 369M,302,301
868 301,369M,302
869 301,369M,302
870 301,369M,302
871 301,369M,302
872 302,301,369M
873 302,370M,301
874 301,302,370M
875 369M,301,302
876 369M,301,302
877 369M,301,302
878 302,369M,301
945 334,336M,333
946 333,334,336M
953 339M,333,334
954 339M,333,334
955 334,339M,333
956 340M,334,333
957 340M,334,333
958 333,340M,334
969 310,349M,309
970 310,349M,309
972 309,350M,310
973 309,350M,310
974 309,350M,310
975 309,350M,310
1025 401M,399,400
1026 401M,399,400
1027 400,401M,399