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 = 287 
WHERE 
  cscart_products_categories.product_id IN (
    450261, 416995, 446789, 426059, 409013, 
    414886, 444321, 406390, 408586, 425085, 
    413163, 415231, 429505, 404254, 401286, 
    447216, 440066, 456947, 406411, 404724, 
    416102, 419585, 417300, 439809, 410868, 
    452526, 440855, 429487, 429075, 407708, 
    457100, 449639
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00071

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost": 0.162948242,
    "nested_loop": [
      {
        "table": {
          "table_name": "cscart_products_categories",
          "access_type": "range",
          "possible_keys": ["PRIMARY", "pt"],
          "key": "pt",
          "key_length": "3",
          "used_key_parts": ["product_id"],
          "loops": 1,
          "rows": 32,
          "cost": 0.05815448,
          "filtered": 100,
          "attached_condition": "cscart_products_categories.product_id in (450261,416995,446789,426059,409013,414886,444321,406390,408586,425085,413163,415231,429505,404254,401286,447216,440066,456947,406411,404724,416102,419585,417300,439809,410868,452526,440855,429487,429075,407708,457100,449639)",
          "using_index": true
        }
      },
      {
        "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": ["u985510652_ecartify.cscart_products_categories.category_id"],
          "loops": 32,
          "rows": 1,
          "cost": 0.02944128,
          "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')"
        }
      },
      {
        "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",
            "u985510652_ecartify.cscart_products_categories.product_id"
          ],
          "loops": 32,
          "rows": 1,
          "cost": 0.05483648,
          "filtered": 100
        }
      }
    ]
  }
}

Result

product_id category_ids position
401286 289M
404254 305M
404724 305M
406390 289M
406411 305M
407708 305M
408586 305M
409013 305M
410868 305M
413163 305M
414886 289M
415231 305M
416102 289M
416995 305M
417300 305M
419585 289M
425085 289M
426059 305M
429075 289M
429487 289M
429505 305M
439809 289M
440066 289M
440855 305M
444321 289M
446789 289M
447216 289M
449639 305M
450261 289M
452526 305M
456947 289M
457100 305M