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 (
    1096, 1098, 1095, 1078, 1086, 1099, 886, 
    884, 1055, 1056, 1057, 1058, 786, 789, 
    792, 699, 777, 774, 781, 1024, 1025, 
    1028, 1050, 1051, 1052, 1049, 1067, 
    1033, 1034, 1037, 1035, 1036, 1038, 
    1032, 1062, 1061, 1060, 1063, 1059, 
    1064, 1066, 612, 976, 978, 968, 971, 
    636, 969, 972, 977, 564, 848, 836, 834, 
    592, 590, 828, 842, 857, 879, 839, 868, 
    852, 873, 591, 859, 864, 875, 832, 1097, 
    679, 568, 578, 583, 573, 1040, 1072, 
    1022, 1023, 1054, 1053, 1070, 815, 811, 
    820, 819, 1100, 959, 952, 950, 951, 1079, 
    941, 948, 945, 953
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00208

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "115.29"
    },
    "grouping_operation": {
      "using_temporary_table": true,
      "using_filesort": true,
      "cost_info": {
        "sort_cost": "11.20"
      },
      "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": 11,
            "filtered": "18.67",
            "index_condition": "(`cscart`.`cscart_products_categories`.`product_id` in (1096,1098,1095,1078,1086,1099,886,884,1055,1056,1057,1058,786,789,792,699,777,774,781,1024,1025,1028,1050,1051,1052,1049,1067,1033,1034,1037,1035,1036,1038,1032,1062,1061,1060,1063,1059,1064,1066,612,976,978,968,971,636,969,972,977,564,848,836,834,592,590,828,842,857,879,839,868,852,873,591,859,864,875,832,1097,679,568,578,583,573,1040,1072,1022,1023,1054,1053,1070,815,811,820,819,1100,959,952,950,951,1079,941,948,945,953))",
            "cost_info": {
              "read_cost": "61.60",
              "eval_cost": "2.24",
              "prefix_cost": "104.09",
              "data_read_per_join": "179"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids
564 300M,389
568 300M,388
573 300M,403,388
578 389,300M,403
583 300M,403,388
590 302M,301,371
591 370,302M,301
592 301M,366,374
612 363,364,309M
636 309M,310,350
679 317,303M,315
699 404,405M,298
774 404,405M,298
777 298,404,405M
781 405M,298,404
786 298,299,391M
789 391M,298,299
792 391M,298,299
811 397M,394,392
815 416M,394,392
819 392,416M,394
820 392,416M,394
828 301,302,367M
832 366,301,374M
834 372,373M,301
836 372,373M,301
839 368M,301,302
842 302,368M,301
848 301,302,368M
852 301,302,369M
857 301,302,369M
859 301,302,369M
864 301,302,369M
868 302,369M,301
873 301,302,370M
875 301,369M,302
879 301,302,371M
884 315,319M,303
886 303,315,319M
941 336M,333,334
945 336M,333,334
948 337M,333,334
950 334,338M,333
951 333,334,338M
952 339M,333,334
953 339M,333,334
959 340M,333,334
968 309,348M,310
969 349M,309,310
971 310,349M,309
972 350M,310,309
976 350M,310,309
977 309,350M,310
978 309,310,351M
1022 309,362,347M
1023 361M,309,347
1024 401M,399,400
1025 401M,399,400
1028 400,401M,399
1032 419M
1033 419M
1034 419M
1035 419M
1036 419M
1037 419M
1038 419M
1040 421M
1049 429M
1050 429M
1051 429M
1052 429M
1053 430M
1054 431M
1055 432M
1056 433M
1057 434M
1058 434M
1059 419M
1060 419M
1061 419M
1062 419M
1063 419M
1064 419M
1066 419M
1067 435M
1070 430M
1072 421M
1078 314M
1079 342M
1086 391M
1095 393M
1096 404M
1097 407M
1098 376M
1099 335M
1100 304M