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.00173

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "115.33"
    },
    "grouping_operation": {
      "using_temporary_table": true,
      "using_filesort": true,
      "cost_info": {
        "sort_cost": "11.19"
      },
      "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.65",
            "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.65",
              "eval_cost": "2.24",
              "prefix_cost": "104.14",
              "data_read_per_join": "179"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids
564 300M,389
568 388,300M
573 388,300M,403
578 403,389,300M
583 300M,403,388
590 302M,301,371
591 370,302M,301
592 374,301M,366
612 363,364,309M
636 310,350,309M
679 303M,315,317
699 405M,298,404
774 405M,298,404
777 405M,298,404
781 404,405M,298
786 299,391M,298
789 298,299,391M
792 298,299,391M
811 394,392,397M
815 394,392,416M
819 416M,394,392
820 416M,394,392
828 302,367M,301
832 374M,366,301
834 301,372,373M
836 373M,301,372
839 301,302,368M
842 301,302,368M
848 301,302,368M
852 302,369M,301
857 302,369M,301
859 301,302,369M
864 301,302,369M
868 301,302,369M
873 370M,301,302
875 301,369M,302
879 302,371M,301
884 319M,303,315
886 319M,303,315
941 333,334,336M
945 336M,333,334
948 337M,333,334
950 338M,333,334
951 338M,333,334
952 339M,333,334
953 333,334,339M
959 333,334,340M
968 348M,310,309
969 310,349M,309
971 309,310,349M
972 309,350M,310
976 309,350M,310
977 310,309,350M
978 310,351M,309
1022 362,347M,309
1023 309,347,361M
1024 400,401M,399
1025 400,401M,399
1028 401M,399,400
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