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 = 7254 
WHERE 
  cscart_products_categories.product_id IN (
    91617, 91618, 83879, 83881, 83887, 91787, 
    91796, 91797, 91798, 91799, 91800, 
    91801, 91802, 91803, 87870, 83894, 
    91622, 91698, 83885, 83888, 91626, 
    87867, 87868, 87869, 91620, 91540, 
    91541, 91542, 91543, 91544, 91545, 
    91546, 91547, 91548, 91549, 91624, 
    91804, 91805, 91806, 91807, 91808, 
    91809, 91810, 91811, 91621, 91601, 
    91602, 91603
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00143

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "27.52"
    },
    "grouping_operation": {
      "using_filesort": false,
      "nested_loop": [
        {
          "table": {
            "table_name": "cscart_products_categories",
            "access_type": "range",
            "possible_keys": [
              "PRIMARY",
              "link_type",
              "pt"
            ],
            "key": "pt",
            "used_key_parts": [
              "product_id"
            ],
            "key_length": "3",
            "rows_examined_per_scan": 48,
            "rows_produced_per_join": 48,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "5.08",
              "eval_cost": "4.80",
              "prefix_cost": "9.88",
              "data_read_per_join": "768"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`nuie_scalesta_net`.`cscart_products_categories`.`product_id` in (91617,91618,83879,83881,83887,91787,91796,91797,91798,91799,91800,91801,91802,91803,87870,83894,91622,91698,83885,83888,91626,87867,87868,87869,91620,91540,91541,91542,91543,91544,91545,91546,91547,91548,91549,91624,91804,91805,91806,91807,91808,91809,91810,91811,91621,91601,91602,91603))"
          }
        },
        {
          "table": {
            "table_name": "cscart_categories",
            "access_type": "eq_ref",
            "possible_keys": [
              "PRIMARY",
              "c_status",
              "p_category_id"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "category_id"
            ],
            "key_length": "3",
            "ref": [
              "nuie_scalesta_net.cscart_products_categories.category_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 2,
            "filtered": "5.00",
            "cost_info": {
              "read_cost": "12.00",
              "eval_cost": "0.24",
              "prefix_cost": "26.68",
              "data_read_per_join": "6K"
            },
            "used_columns": [
              "category_id",
              "usergroup_ids",
              "status",
              "storefront_id"
            ],
            "attached_condition": "((`nuie_scalesta_net`.`cscart_categories`.`storefront_id` in (0,1)) and ((`nuie_scalesta_net`.`cscart_categories`.`usergroup_ids` = '') or (0 <> find_in_set(0,`nuie_scalesta_net`.`cscart_categories`.`usergroup_ids`)) or (0 <> find_in_set(1,`nuie_scalesta_net`.`cscart_categories`.`usergroup_ids`))) and (`nuie_scalesta_net`.`cscart_categories`.`status` in ('A','H')))"
          }
        },
        {
          "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",
              "nuie_scalesta_net.cscart_products_categories.product_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 2,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "0.60",
              "eval_cost": "0.24",
              "prefix_cost": "27.52",
              "data_read_per_join": "38"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "position"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids position
83879 7254M 0
83881 7254M 0
83885 7254M 0
83887 7254M 0
83888 7254M 0
83894 7254M 0
87867 7254M 0
87868 7254M 0
87869 7254M 0
87870 7254M 0
91540 7254M 0
91541 7254M 0
91542 7254M 0
91543 7254M 0
91544 7254M 0
91545 7254M 0
91546 7254M 0
91547 7254M 0
91548 7254M 0
91549 7254M 0
91601 7254M 0
91602 7254M 0
91603 7254M 0
91617 7254M 0
91618 7254M 0
91620 7254M 0
91621 7254M 0
91622 7254M 0
91624 7254M 0
91626 7254M 0
91698 7254M 0
91787 7254M 0
91796 7254M 0
91797 7254M 0
91798 7254M 0
91799 7254M 0
91800 7254M 0
91801 7254M 0
91802 7254M 0
91803 7254M 0
91804 7254M 0
91805 7254M 0
91806 7254M 0
91807 7254M 0
91808 7254M 0
91809 7254M 0
91810 7254M 0
91811 7254M 0