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 (
    735, 734, 733, 732, 731, 730, 729, 728, 
    742, 741, 740, 739, 738, 737, 736, 747, 
    746, 745, 744, 743, 749, 752, 751, 750, 
    748, 758, 757, 756, 755, 754, 753, 761, 
    760, 759, 770, 769, 768, 773, 772, 771, 
    810, 809, 808, 807, 823, 822
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00234

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "110.71"
    },
    "grouping_operation": {
      "using_temporary_table": true,
      "using_filesort": true,
      "cost_info": {
        "sort_cost": "6.57"
      },
      "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": 6,
            "filtered": "10.95",
            "index_condition": "(`cscart`.`cscart_products_categories`.`product_id` in (735,734,733,732,731,730,729,728,742,741,740,739,738,737,736,747,746,745,744,743,749,752,751,750,748,758,757,756,755,754,753,761,760,759,770,769,768,773,772,771,810,809,808,807,823,822))",
            "cost_info": {
              "read_cost": "61.65",
              "eval_cost": "1.31",
              "prefix_cost": "104.14",
              "data_read_per_join": "105"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids
728 375,377,382M
729 375,377,382M
730 382M,375,377
731 377,382M,375
732 377,382M,375
733 375,377,382M
734 375,377,382M
735 375,377,382M
736 375,377,382M
737 382M,375,377
738 377,382M,375
739 375,377,382M
740 375,377,382M
741 375,377,382M
742 375,377,382M
743 382M,375,377
744 377,382M,375
745 377,382M,375
746 375,377,382M
747 375,377,382M
748 375,377,382M
749 375,377,382M
750 377,382M,375
751 377,382M,375
752 375,377,382M
753 375,377,382M
754 375,377,382M
755 375,377,382M
756 382M,375,377
757 377,382M,375
758 375,377,382M
759 375,377,382M
760 375,377,382M
761 375,377,382M
768 375,381M,376
769 376,375,381M
770 381M,376,375
771 375,381M,376
772 375,381M,376
773 375,381M,376
807 393,392,396M
808 396M,393,392
809 392,396M,393
810 392,396M,393
822 392,398M,395
823 392,398M,395