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 = 7284 
WHERE 
  cscart_products_categories.product_id IN (
    90046, 90047, 90058, 90059, 90014, 90015, 
    90016, 90017, 90026, 90027, 90028, 
    90029, 90030, 90031, 87836, 93834, 
    93835, 93882, 93883, 93884, 93885, 
    95360, 96122, 96124, 96125, 96126, 
    96127, 96131, 96155, 96156
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00126

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "44.38"
    },
    "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": 49,
            "rows_produced_per_join": 49,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "5.18",
              "eval_cost": "4.90",
              "prefix_cost": "10.08",
              "data_read_per_join": "784"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`nuie_scalesta_net`.`cscart_products_categories`.`product_id` in (90046,90047,90058,90059,90014,90015,90016,90017,90026,90027,90028,90029,90030,90031,87836,93834,93835,93882,93883,93884,93885,95360,96122,96124,96125,96126,96127,96131,96155,96156))"
          }
        },
        {
          "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": 49,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "12.25",
              "eval_cost": "4.90",
              "prefix_cost": "27.23",
              "data_read_per_join": "784"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "position"
            ]
          }
        },
        {
          "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.25",
              "eval_cost": "0.25",
              "prefix_cost": "44.38",
              "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')))"
          }
        }
      ]
    }
  }
}

Result

product_id category_ids position
87836 7330,7285M
90014 7286M
90015 7286M
90016 7286M
90017 7286M
90026 7286M
90027 7287M
90028 7287M
90029 7287M
90030 7287M
90031 7287M
90046 7330,7285M
90047 7330,7285M
90058 7330,7285M
90059 7330,7285M
93834 7330,7285M
93835 7330,7285M
93882 7330,7285M
93883 7330,7285M
93884 7330,7285M
93885 7330,7285M
95360 7287M
96122 7330,7285M
96124 7330,7285M
96125 7330,7285M
96126 7330,7285M
96127 7330,7285M
96131 7330,7285M
96155 7330,7285M
96156 7330,7285M