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, 
  product_position_source.position AS position 
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') 
  LEFT JOIN cscart_products_categories AS product_position_source ON cscart_products_categories.product_id = product_position_source.product_id 
  AND product_position_source.category_id = 271 
WHERE 
  cscart_products_categories.product_id IN (
    12498, 13101, 13100, 10699, 10695, 10195, 
    10576, 10696, 9760, 10583, 10701, 10582, 
    10139, 12503, 10575, 9932, 10075, 10135, 
    9952, 10074, 10573, 10577, 10651, 10642, 
    12529, 12515, 12525, 12532, 12523, 
    10198, 10557, 10202
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00076

JSON explain

{
  "query_block": {
    "select_id": 1,
    "table": {
      "table_name": "cscart_products_categories",
      "access_type": "range",
      "possible_keys": ["PRIMARY", "pt"],
      "key": "pt",
      "key_length": "3",
      "used_key_parts": ["product_id"],
      "rows": 32,
      "filtered": 100,
      "index_condition": "cscart_products_categories.product_id in (12498,13101,13100,10699,10695,10195,10576,10696,9760,10583,10701,10582,10139,12503,10575,9932,10075,10135,9952,10074,10573,10577,10651,10642,12529,12515,12525,12532,12523,10198,10557,10202)"
    },
    "table": {
      "table_name": "product_position_source",
      "access_type": "eq_ref",
      "possible_keys": ["PRIMARY", "pt"],
      "key": "PRIMARY",
      "key_length": "6",
      "used_key_parts": ["category_id", "product_id"],
      "ref": [
        "const",
        "noframes_angrybeaver.cscart_products_categories.product_id"
      ],
      "rows": 1,
      "filtered": 100
    },
    "table": {
      "table_name": "cscart_categories",
      "access_type": "eq_ref",
      "possible_keys": ["PRIMARY", "c_status", "p_category_id"],
      "key": "PRIMARY",
      "key_length": "3",
      "used_key_parts": ["category_id"],
      "ref": ["noframes_angrybeaver.cscart_products_categories.category_id"],
      "rows": 1,
      "filtered": 100,
      "attached_condition": "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')"
    }
  }
}

Result

product_id category_ids position
9760 275M
9932 275M
9952 275M
10074 275M
10075 275M
10135 275M
10139 275M
10195 275M
10198 275M
10202 275M
10557 275M
10573 275M
10575 275M
10576 275M
10577 275M
10582 275M
10583 275M
10642 275M
10651 275M
10695 275M
10696 275M
10699 275M
10701 275M
12498 275M
12503 275M
12515 275M
12523 275M
12525 275M
12529 275M
12532 275M
13100 275M
13101 275M