Correlated subquery fails (i.e. where exists) when nullable outer column used

Subquery executes to empty result making EXISTS/NOT EXISTS fail when inside of the subquery outer query column is nullable. Here i made very simple example to reproduce it, cos actual query i use is pretty complex:
so table(parquet file on s3, but same with aws glue) where ID is nullable float:

ID   Text
0  1.0    One
1  NaN    Two
2  2.0  Three
  1. SELECT * FROM "table_nullable.parquet" a returns 3 rows
  2. SELECT * FROM "table_nullable.parquet" a where a.ID is null returns 1 rows.
  3. SELECT * FROM "table_nullable.parquet" a where exists(select * from "table_nullable.parquet" b) returns 3 rows
  4. SELECT * FROM "table_nullable.parquet" a where exists(select * from "table_nullable.parquet" b WHERE A.ID IS NULL) returns empty result set, but should return 1 row.
    using WITH + COALESCE helps:
  5. WITH fixed AS (SELECT COALESCE(ID, -1) ID, "Text" FROM "table_nullable.parquet") SELECT * FROM fixed a where exists(select * from fixed b where a.ID = -1)
    returns exactly 1 row

Check out last query has predicate with outer a table referenced as is null which is true for 1 rows in outer query always.

This example is oversimplified and senseless, but in real use cases it makes such queries fail:
select * from table a where [not] exists (select * from table b where (b.x=a.x or (b.x is null and a.x is null)) and >
Even coalesce(b.x,..)=coalesce(a.x,..) doesn help. only work around this issue is to wrap main query in with with coalesce(x,0) instead of x.

Attached profile of the 4th failed query (10.9 КБ)

AWS Edition (activated)

@vladislav-stolyarov Was able to observe the same behavior, will look into this