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, 
    941, 
    942, 
    943, 
    944, 
    945, 
    946, 
    948, 
    949, 
    953, 
    954, 
    955, 
    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.00195

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "122.50"
    },
    "grouping_operation": {
      "using_temporary_table": true,
      "using_filesort": true,
      "cost_info": {
        "sort_cost": "18.41"
      },
      "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.68",
            "index_condition": "(`cscart`.`cscart_products_categories`.`product_id` in (969,970,636,637,972,973,974,975,941,942,943,944,945,946,948,949,953,954,955,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.68",
              "prefix_cost": "104.09",
              "data_read_per_join": "294"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ]
          }
        }
      ]
    }
  }
}

Result

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