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 (
    431514, 431515, 431516, 431517, 431518, 
    431519, 431520, 431521, 431522, 431523, 
    431524, 431525, 431526, 431527, 431528, 
    431529, 431530, 431531, 431532, 431533, 
    431534, 431535, 431536, 431537
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00171

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "116.31"
    },
    "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": 72,
            "rows_produced_per_join": 72,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "15.51",
              "eval_cost": "14.40",
              "prefix_cost": "29.91",
              "data_read_per_join": "1K"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`webmarco`.`cscart_products_categories`.`product_id` in (431514,431515,431516,431517,431518,431519,431520,431521,431522,431523,431524,431525,431526,431527,431528,431529,431530,431531,431532,431533,431534,431535,431536,431537))"
          }
        },
        {
          "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": 3,
            "filtered": "5.00",
            "cost_info": {
              "read_cost": "72.00",
              "eval_cost": "0.72",
              "prefix_cost": "116.31",
              "data_read_per_join": "21K"
            },
            "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
431514 2769,9965,2722M
431515 2769,9965,2722M
431516 2769,9965,2722M
431517 2769,9965,2722M
431518 2769,9965,2722M
431519 2769,9965,2722M
431520 2769,9965,2722M
431521 2769,9965,2722M
431522 2769,9965,2722M
431523 2769,9965,2722M
431524 2769,9965,2722M
431525 2769,9965,2722M
431526 2769,9965,2722M
431527 2769,9965,2722M
431528 2769,9965,2722M
431529 2769,9965,2722M
431530 2769,9965,2722M
431531 2769,9965,2722M
431532 2769,9965,2722M
431533 2769,9965,2722M
431534 2769,9965,2722M
431535 2769,9965,2722M
431536 2769,9965,2722M
431537 2769,9965,2722M