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 (
    1605, 1606, 1607, 1608, 1609, 1610, 1611, 
    1612, 1613, 1614, 1615, 1616, 1617, 
    1618, 1619, 1620, 1621, 1622, 1623, 
    1624, 1625, 5299, 5300, 5301, 5302, 
    5303, 5304, 5305, 5306, 5307, 5308, 
    5309, 5310, 5311, 5312, 5313, 5314, 
    5315, 5316, 5317, 5318, 5319, 5320, 
    5321, 5322, 5323, 5324, 5325, 1627, 
    1628, 1629, 1630, 1631, 1632, 1633, 
    1634, 1635, 1636, 1637, 1638, 1639, 
    1640, 1641, 1642, 1643, 1644, 1645, 
    1646, 1647, 1648, 1649, 1650, 1651, 
    1652, 5326, 5327, 5328, 5329, 5330, 
    5331, 5332, 5333, 5334, 5335, 5336, 
    5337, 5338, 5339, 5340, 5341, 5342, 
    5343, 5344, 5345, 5346, 5347
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00313

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "68.48"
    },
    "grouping_operation": {
      "using_temporary_table": true,
      "using_filesort": true,
      "cost_info": {
        "sort_cost": "1.61"
      },
      "nested_loop": [
        {
          "table": {
            "table_name": "cscart_categories",
            "access_type": "ALL",
            "possible_keys": [
              "PRIMARY",
              "c_status",
              "p_category_id"
            ],
            "rows_examined_per_scan": 40,
            "rows_produced_per_join": 1,
            "filtered": "4.00",
            "cost_info": {
              "read_cost": "4.54",
              "eval_cost": "0.16",
              "prefix_cost": "4.70",
              "data_read_per_join": "6K"
            },
            "used_columns": [
              "category_id",
              "storefront_id",
              "usergroup_ids",
              "status"
            ],
            "attached_condition": "((`gaseus`.`cscart_categories`.`storefront_id` in (0,1)) and ((`gaseus`.`cscart_categories`.`usergroup_ids` = '') or (0 <> find_in_set(0,`gaseus`.`cscart_categories`.`usergroup_ids`)) or (0 <> find_in_set(1,`gaseus`.`cscart_categories`.`usergroup_ids`))) and (`gaseus`.`cscart_categories`.`status` in ('A','H')))"
          }
        },
        {
          "table": {
            "table_name": "cscart_products_categories",
            "access_type": "ref",
            "possible_keys": [
              "PRIMARY",
              "pt"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "category_id"
            ],
            "key_length": "3",
            "ref": [
              "gaseus.cscart_categories.category_id"
            ],
            "rows_examined_per_scan": 110,
            "rows_produced_per_join": 1,
            "filtered": "0.92",
            "index_condition": "(`gaseus`.`cscart_products_categories`.`product_id` in (1605,1606,1607,1608,1609,1610,1611,1612,1613,1614,1615,1616,1617,1618,1619,1620,1621,1622,1623,1624,1625,5299,5300,5301,5302,5303,5304,5305,5306,5307,5308,5309,5310,5311,5312,5313,5314,5315,5316,5317,5318,5319,5320,5321,5322,5323,5324,5325,1627,1628,1629,1630,1631,1632,1633,1634,1635,1636,1637,1638,1639,1640,1641,1642,1643,1644,1645,1646,1647,1648,1649,1650,1651,1652,5326,5327,5328,5329,5330,5331,5332,5333,5334,5335,5336,5337,5338,5339,5340,5341,5342,5343,5344,5345,5346,5347))",
            "cost_info": {
              "read_cost": "44.00",
              "eval_cost": "0.16",
              "prefix_cost": "66.30",
              "data_read_per_join": "25"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ]
          }
        },
        {
          "table": {
            "table_name": "product_position_source",
            "access_type": "eq_ref",
            "possible_keys": [
              "PRIMARY",
              "pt"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "category_id",
              "product_id"
            ],
            "key_length": "6",
            "ref": [
              "const",
              "gaseus.cscart_products_categories.product_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 1,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "0.40",
              "eval_cost": "0.16",
              "prefix_cost": "66.87",
              "data_read_per_join": "25"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "position"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids position
1605 308M
1606 308M
1607 308M
1608 308M
1609 308M
1610 308M
1611 308M
1612 308M
1613 308M
1614 308M
1615 308M
1616 308M
1617 308M
1618 308M
1619 308M
1620 308M
1621 308M
1622 308M
1623 308M
1624 308M
1625 308M
1627 308M
1628 308M
1629 308M
1630 308M
1631 308M
1632 308M
1633 308M
1634 308M
1635 308M
1636 308M
1637 308M
1638 308M
1639 308M
1640 308M
1641 308M
1642 308M
1643 308M
1644 308M
1645 308M
1646 308M
1647 308M
1648 308M
1649 308M
1650 308M
1651 308M
1652 308M
5299 308M
5300 308M
5301 308M
5302 308M
5303 308M
5304 308M
5305 308M
5306 308M
5307 308M
5308 308M
5309 308M
5310 308M
5311 308M
5312 308M
5313 308M
5314 308M
5315 308M
5316 308M
5317 308M
5318 308M
5319 308M
5320 308M
5321 308M
5322 308M
5323 308M
5324 308M
5325 308M
5326 308M
5327 308M
5328 308M
5329 308M
5330 308M
5331 308M
5332 308M
5333 308M
5334 308M
5335 308M
5336 308M
5337 308M
5338 308M
5339 308M
5340 308M
5341 308M
5342 308M
5343 308M
5344 308M
5345 308M
5346 308M
5347 308M