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 (
    276553, 276572, 276573, 276574, 276575, 
    276588, 276589, 276590, 276591, 276592, 
    276593, 276594, 276595, 276596, 276597, 
    276598, 276599, 276600, 276601, 276602
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00072

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "21.01"
    },
    "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": 20,
            "rows_produced_per_join": 20,
            "filtered": "100.00",
            "index_condition": "(`s2cart`.`cscart_products_categories`.`product_id` in (276553,276572,276573,276574,276575,276588,276589,276590,276591,276592,276593,276594,276595,276596,276597,276598,276599,276600,276601,276602))",
            "cost_info": {
              "read_cost": "12.01",
              "eval_cost": "2.00",
              "prefix_cost": "14.01",
              "data_read_per_join": "320"
            },
            "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": [
              "s2cart.cscart_products_categories.category_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 1,
            "filtered": "5.00",
            "cost_info": {
              "read_cost": "5.00",
              "eval_cost": "0.10",
              "prefix_cost": "21.01",
              "data_read_per_join": "3K"
            },
            "used_columns": [
              "category_id",
              "usergroup_ids",
              "status",
              "storefront_id"
            ],
            "attached_condition": "((`s2cart`.`cscart_categories`.`storefront_id` in (0,1)) and ((`s2cart`.`cscart_categories`.`usergroup_ids` = '') or (0 <> find_in_set(0,`s2cart`.`cscart_categories`.`usergroup_ids`)) or (0 <> find_in_set(1,`s2cart`.`cscart_categories`.`usergroup_ids`))) and (`s2cart`.`cscart_categories`.`status` in ('A','H')))"
          }
        }
      ]
    }
  }
}

Result

product_id category_ids
276553 4936M
276572 4936M
276573 4936M
276574 4936M
276575 4936M
276588 4936M
276589 4936M
276590 4936M
276591 4936M
276592 4936M
276593 4936M
276594 4936M
276595 4936M
276596 4936M
276597 4936M
276598 4936M
276599 4936M
276600 4936M
276601 4936M
276602 4936M