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, 1118, 1024, 
    1025, 1028, 1050, 1051, 1052, 1049, 
    1067, 1033, 1034, 1037, 1035, 1036, 
    1038, 1032, 1062, 1061, 1060, 1063, 
    1059, 1064, 1066, 976, 978, 968, 971, 
    636, 969, 972, 977, 1116, 564, 848, 836, 
    834, 592, 590, 859, 828, 842, 857, 879, 
    839, 868, 852, 873, 591, 864, 875, 832, 
    1109, 1097, 1113, 1119, 679, 568, 578, 
    583, 573, 1040, 1072, 1022, 1023, 1054, 
    1053, 1070, 815, 811, 820, 819, 1100, 
    1115, 959, 952, 950, 951
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00157

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "116.04"
    },
    "grouping_operation": {
      "using_temporary_table": true,
      "using_filesort": true,
      "cost_info": {
        "sort_cost": "10.32"
      },
      "nested_loop": [
        {
          "table": {
            "table_name": "cscart_categories",
            "access_type": "ALL",
            "possible_keys": [
              "PRIMARY",
              "c_status",
              "p_category_id"
            ],
            "rows_examined_per_scan": 126,
            "rows_produced_per_join": 5,
            "filtered": "4.00",
            "cost_info": {
              "read_cost": "29.72",
              "eval_cost": "1.01",
              "prefix_cost": "30.73",
              "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": 10,
            "filtered": "17.07",
            "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,1118,1024,1025,1028,1050,1051,1052,1049,1067,1033,1034,1037,1035,1036,1038,1032,1062,1061,1060,1063,1059,1064,1066,976,978,968,971,636,969,972,977,1116,564,848,836,834,592,590,859,828,842,857,879,839,868,852,873,591,864,875,832,1109,1097,1113,1119,679,568,578,583,573,1040,1072,1022,1023,1054,1053,1070,815,811,820,819,1100,1115,959,952,950,951))",
            "cost_info": {
              "read_cost": "62.90",
              "eval_cost": "2.06",
              "prefix_cost": "105.72",
              "data_read_per_join": "165"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids
564 300M,389
568 388,300M
573 388,300M,403
578 389,300M,403
583 403,388,300M
590 371,302M,301
591 302M,301,370
592 374,301M,366
636 350,309M,310
679 303M,315,317
699 298,404,405M
774 298,404,405M
777 298,404,405M
781 298,404,405M
786 391M,299,298
789 298,391M,299
792 299,298,391M
811 394,392,397M
815 394,392,416M
819 394,392,416M
820 394,392,416M
828 302,367M,301
832 374M,301,366
834 372,373M,301
836 301,372,373M
839 301,368M,302
842 301,368M,302
848 301,368M,302
852 302,301,369M
857 369M,302,301
859 301,369M,302
864 301,369M,302
868 301,369M,302
873 301,302,370M
875 302,369M,301
879 302,371M,301
884 319M,303,315
886 319M,303,315
950 334,333,338M
951 334,333,338M
952 333,339M,334
959 333,340M,334
968 310,309,348M
969 310,349M,309
971 310,349M,309
972 350M,310,309
976 309,350M,310
977 309,350M,310
978 309,351M,310
1022 362,309,347M
1023 361M,347,309
1024 400,399,401M
1025 399,401M,400
1028 399,401M,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
1086 391M
1095 393M
1096 404M
1097 407M
1098 376M
1099 335M
1100 304M
1109 301M,437
1113 407,406M
1115 334M
1116 300M
1118 400M
1119 393M