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 = 7 
WHERE 
  cscart_products_categories.product_id IN (
    1285, 1283, 1284, 1282, 1401, 1402, 1403, 
    1384, 727, 729, 726, 1583, 251, 237, 
    238, 373, 372, 339, 365, 236, 786, 381, 
    389, 1914, 1321, 1368, 1877, 1876, 1878, 
    1806, 1794, 1807, 1884, 1886, 1889, 
    1890, 1881, 1879, 1880, 1882, 1888, 
    1871, 1887, 715, 714, 1485, 1915, 345
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00182

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": 48,
      "filtered": 100,
      "index_condition": "cscart_products_categories.product_id in (1285,1283,1284,1282,1401,1402,1403,1384,727,729,726,1583,251,237,238,373,372,339,365,236,786,381,389,1914,1321,1368,1877,1876,1878,1806,1794,1807,1884,1886,1889,1890,1881,1879,1880,1882,1888,1871,1887,715,714,1485,1915,345)"
    },
    "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": ["bacpvdev_db.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')"
    },
    "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", "bacpvdev_db.cscart_products_categories.product_id"],
      "rows": 1,
      "filtered": 100
    }
  }
}

Result

product_id category_ids position
236 8M
237 8M
238 8M
251 8M
339 8M
345 8M
365 8M
372 8M
373 8M
381 8M
389 8M
714 8M
715 8M
726 8M
727 8M
729 8M
786 8M
1282 43M
1283 43M
1284 43M
1285 43M
1321 8M
1368 8M
1384 8M
1401 8M
1402 8M
1403 8M
1485 8M
1583 8M
1794 8M
1806 8M
1807 8M
1871 8M
1876 8M
1877 8M
1878 8M
1879 8M
1880 8M
1881 8M
1882 8M
1884 8M
1886 8M
1887 8M
1888 8M
1889 8M
1890 8M
1914 8M
1915 8M