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 = 309 
WHERE 
  cscart_products_categories.product_id IN (
    10653, 10646, 10645, 10647, 10648, 10649, 
    10726, 10650, 10547, 9789, 10655, 10654, 
    10605, 10604, 9873, 10293, 10294, 10295, 
    10724, 10725, 10397, 10398, 10399, 
    10400, 10401, 10402, 12700
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00747

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": 27,
      "filtered": 100,
      "index_condition": "cscart_products_categories.product_id in (10653,10646,10645,10647,10648,10649,10726,10650,10547,9789,10655,10654,10605,10604,9873,10293,10294,10295,10724,10725,10397,10398,10399,10400,10401,10402,12700)"
    },
    "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
9789 700M
9873 708M
10293 775M
10294 775M
10295 775M
10397 787M
10398 787M
10399 787M
10400 787M
10401 787M
10402 787M
10547 700M
10604 708M
10605 708M
10645 700M
10646 700M
10647 700M
10648 700M
10649 700M
10650 700M
10653 700M
10654 708M
10655 708M
10724 775M
10725 775M
10726 700M
12700 787M