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 = 888 
WHERE 
  cscart_products_categories.product_id IN (
    19958, 19959, 20134, 19906, 20031, 20032, 
    20183, 19939, 20197, 20196, 20198, 
    20193, 20194, 20195, 20199, 20200, 
    19930, 19985, 19931, 19932, 19895, 
    19933, 20146, 20143
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00119

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": 35,
      "filtered": 100,
      "index_condition": "cscart_products_categories.product_id in (19958,19959,20134,19906,20031,20032,20183,19939,20197,20196,20198,20193,20194,20195,20199,20200,19930,19985,19931,19932,19895,19933,20146,20143)"
    },
    "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", "admin_test.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": ["admin_test.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
19895 916M
19906 916M
19930 916M
19931 916M
19932 916M
19933 916M
19939 916M
19958 916M
19959 916M
19985 916M
20031 916M
20032 916M
20134 916M
20143 916M
20146 916M
20183 916M
20193 916M
20194 916M
20195 916M
20196 916M
20197 916M
20198 916M
20199 916M
20200 916M