### Description

The IS NULL/IS NOT NULL only care about the nullability not the value of an expression.
Given the expression x + 1 / 2, the actual result does not matter only if it's null or not - that is, it only matters if x is null or not.
So x + 1 / 2 IS NULL becomes x IS NULL - which can be opportunistically pushed down or evaluated.
x-pack/plugin/ql/src/main/java/org/elasticsearch/xpack/ql/optimizer/OptimizerRules.java
other.upper(),
                                            other.includeUpper(),
                                            other.zoneId()
                                        )
                                    );
                                }
                                
                                return true;
                            }
                        }
                    } else if (main instanceof LessThan || main instanceof LessThanOrEqual) {
                        if (other.upper().foldable()) {
                            Integer comp = BinaryComparison.compare(value, other.upper().fold());
                            if (comp != null) {
                                
                                boolean upperEq = comp == 0 && other.includeUpper() && main instanceof LessThan;
                                
                                boolean upper = comp < 0 || upperEq;
                                if (upper) {
                                    ranges.set(
                                        i,
                                        new Range(
                                            other.source(),
                                            other.value(),
                                            other.lower(),
                                            other.includeLower(),
                                            main.right(),
                                            upperEq ? false : main instanceof LessThanOrEqual,
                                            other.zoneId()
                                        )