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 (
    431561, 431562, 431563, 431564, 431565, 
    431566, 431567, 431568, 431569, 431587, 
    431588, 431589, 431590, 431591, 431592, 
    431593, 431594, 431595, 431596, 431597, 
    431598, 431599, 431600, 431601, 431602, 
    431603, 431604
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00092

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "87.49"
    },
    "grouping_operation": {
      "using_filesort": false,
      "nested_loop": [
        {
          "table": {
            "table_name": "cscart_products_categories",
            "access_type": "range",
            "possible_keys": [
              "PRIMARY",
              "link_type",
              "pt"
            ],
            "key": "pt",
            "used_key_parts": [
              "product_id"
            ],
            "key_length": "3",
            "rows_examined_per_scan": 54,
            "rows_produced_per_join": 54,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "11.89",
              "eval_cost": "10.80",
              "prefix_cost": "22.69",
              "data_read_per_join": "864"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`webmarco`.`cscart_products_categories`.`product_id` in (431561,431562,431563,431564,431565,431566,431567,431568,431569,431587,431588,431589,431590,431591,431592,431593,431594,431595,431596,431597,431598,431599,431600,431601,431602,431603,431604))"
          }
        },
        {
          "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": [
              "webmarco.cscart_products_categories.category_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 2,
            "filtered": "5.00",
            "cost_info": {
              "read_cost": "54.00",
              "eval_cost": "0.54",
              "prefix_cost": "87.49",
              "data_read_per_join": "16K"
            },
            "used_columns": [
              "category_id",
              "usergroup_ids",
              "status",
              "storefront_id"
            ],
            "attached_condition": "((`webmarco`.`cscart_categories`.`storefront_id` in (0,1)) and ((`webmarco`.`cscart_categories`.`usergroup_ids` = '') or find_in_set(0,`webmarco`.`cscart_categories`.`usergroup_ids`) or find_in_set(1,`webmarco`.`cscart_categories`.`usergroup_ids`)) and (`webmarco`.`cscart_categories`.`status` in ('A','H')))"
          }
        }
      ]
    }
  }
}

Result

product_id category_ids
431561 9986,2722M
431562 9986,2722M
431563 9986,2722M
431564 9986,2722M
431565 9986,2722M
431566 9986,2722M
431567 9986,2722M
431568 9986,2722M
431569 9986,2722M
431587 9986,2722M
431588 9986,2722M
431589 9986,2722M
431590 9986,2722M
431591 9986,2722M
431592 9986,2722M
431593 9986,2722M
431594 9986,2722M
431595 9986,2722M
431596 9986,2722M
431597 9986,2722M
431598 9986,2722M
431599 9986,2722M
431600 9986,2722M
431601 9986,2722M
431602 9986,2722M
431603 9986,2722M
431604 9986,2722M