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 (
    672, 673, 674, 881, 880, 883, 882, 893, 
    892, 899, 898, 897, 896, 901, 900, 907, 
    906, 905, 904, 903, 902, 923, 922, 931, 
    930, 929, 928, 927, 926, 934, 935, 937, 
    938, 939, 940, 943, 942, 941, 944, 948, 
    949
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00105

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "109.88"
    },
    "grouping_operation": {
      "using_temporary_table": true,
      "using_filesort": true,
      "cost_info": {
        "sort_cost": "5.74"
      },
      "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": 5,
            "filtered": "9.57",
            "index_condition": "(`cscart`.`cscart_products_categories`.`product_id` in (672,673,674,881,880,883,882,893,892,899,898,897,896,901,900,907,906,905,904,903,902,923,922,931,930,929,928,927,926,934,935,937,938,939,940,943,942,941,944,948,949))",
            "cost_info": {
              "read_cost": "61.65",
              "eval_cost": "1.15",
              "prefix_cost": "104.14",
              "data_read_per_join": "91"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids
672 303,304M,326
673 303,304M,326
674 326,303,304M
880 315,303,317M
881 317M,315,303
882 318M,315,303
883 303,318M,315
892 304,303,322M
893 304,303,322M
896 304,303,322M
897 304,303,322M
898 322M,304,303
899 303,322M,304
900 304M,303,322
901 304M,303,322
902 304,303,325M
903 304,303,325M
904 325M,304,303
905 303,325M,304
906 304,303,325M
907 304,303,325M
922 305,328M,303
923 305,328M,303
926 305,329M,303
927 305,329M,303
928 303,305,329M
929 303,305,329M
930 329M,303,305
931 305,329M,303
934 314,330M,303
935 314,330M,303
937 303,314,332M
938 303,314,332M
939 332M,303,314
940 314,332M,303
941 336M,333,334
942 336M,333,334
943 336M,333,334
944 336M,333,334
948 337M,333,334
949 334,337M,333