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, 767, 766, 765, 764, 763, 762, 
    770, 769, 768, 773, 772, 771
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00145

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "110.57"
    },
    "grouping_operation": {
      "using_temporary_table": true,
      "using_filesort": true,
      "cost_info": {
        "sort_cost": "6.48"
      },
      "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.80",
            "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,767,766,765,764,763,762,770,769,768,773,772,771))",
            "cost_info": {
              "read_cost": "61.60",
              "eval_cost": "1.30",
              "prefix_cost": "104.09",
              "data_read_per_join": "103"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids
728 382M,375,377
729 377,382M,375
730 375,377,382M
731 375,377,382M
732 375,377,382M
733 375,377,382M
734 375,377,382M
735 382M,375,377
736 377,382M,375
737 375,377,382M
738 375,377,382M
739 375,377,382M
740 375,377,382M
741 382M,375,377
742 377,382M,375
743 375,377,382M
744 375,377,382M
745 375,377,382M
746 375,377,382M
747 375,377,382M
748 377,382M,375
749 377,382M,375
750 375,377,382M
751 375,377,382M
752 375,377,382M
753 375,377,382M
754 382M,375,377
755 377,382M,375
756 375,377,382M
757 375,377,382M
758 375,377,382M
759 375,377,382M
760 382M,375,377
761 377,382M,375
762 375,377,382M
763 375,377,382M
764 375,377,382M
765 375,377,382M
766 375,377,382M
767 382M,375,377
768 381M,376,375
769 375,381M,376
770 375,381M,376
771 375,381M,376
772 375,381M,376
773 375,381M,376