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 (
    32019, 9933, 12034, 12033, 9918, 27758, 
    69929, 38318, 35227, 34334, 38426, 
    31951, 34347, 34575, 7471, 32137, 35450, 
    32240, 38330, 38352, 39033, 35352, 
    7523, 37523, 35334, 7476, 7420, 35966, 
    32011, 32218, 35691, 32200, 35735, 
    70305, 71343, 71347, 71884, 72167, 
    72174
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00154

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "67.36"
    },
    "grouping_operation": {
      "using_filesort": false,
      "nested_loop": [
        {
          "table": {
            "table_name": "cscart_products_categories",
            "access_type": "range",
            "possible_keys": [
              "PRIMARY",
              "pt"
            ],
            "key": "pt",
            "used_key_parts": [
              "product_id"
            ],
            "key_length": "3",
            "rows_examined_per_scan": 72,
            "rows_produced_per_join": 72,
            "filtered": "100.00",
            "index_condition": "(`cscartdb`.`cscart_products_categories`.`product_id` in (32019,9933,12034,12033,9918,27758,69929,38318,35227,34334,38426,31951,34347,34575,7471,32137,35450,32240,38330,38352,39033,35352,7523,37523,35334,7476,7420,35966,32011,32218,35691,32200,35735,70305,71343,71347,71884,72167,72174))",
            "cost_info": {
              "read_cost": "34.96",
              "eval_cost": "7.20",
              "prefix_cost": "42.16",
              "data_read_per_join": "1K"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ]
          }
        },
        {
          "table": {
            "table_name": "cscart_categories",
            "access_type": "eq_ref",
            "possible_keys": [
              "PRIMARY",
              "c_status",
              "p_category_id"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "category_id"
            ],
            "key_length": "3",
            "ref": [
              "cscartdb.cscart_products_categories.category_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 3,
            "filtered": "5.00",
            "cost_info": {
              "read_cost": "18.00",
              "eval_cost": "0.36",
              "prefix_cost": "67.36",
              "data_read_per_join": "12K"
            },
            "used_columns": [
              "category_id",
              "storefront_id",
              "usergroup_ids",
              "status"
            ],
            "attached_condition": "((`cscartdb`.`cscart_categories`.`storefront_id` in (0,1)) and ((`cscartdb`.`cscart_categories`.`usergroup_ids` = '') or (0 <> find_in_set(0,`cscartdb`.`cscart_categories`.`usergroup_ids`)) or (0 <> find_in_set(1,`cscartdb`.`cscart_categories`.`usergroup_ids`))) and (`cscartdb`.`cscart_categories`.`status` in ('A','H')))"
          }
        }
      ]
    }
  }
}

Result

product_id category_ids
7420 265,18M
7471 264,349M
7476 265,18M
7523 269,421M
9918 393,31M
9933 393,12M
12033 393,12M
12034 393,12M
27758 393,31M
31951 955,65M
32011 958,347M
32019 959,28M
32137 959,56M
32200 958,347M
32218 958,347M
32240 955,65M
34334 991,53M
34347 991,535M
34575 991,53M
35227 1014,421M
35334 1014,18M
35352 1014,421M
35450 1141,1211M
35691 1149,347M
35735 1149,347M
35966 1014,421M
37523 620,576M
38318 1135,29M
38330 1136,28M
38352 1157,28M
38426 1157,28M
39033 619,516M
69929 1510,61M
70305 270,423M
71343 618,347M
71347 271,349M
71884 1557,40M
72167 1555,39M
72174 1557,40M