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

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