### 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
if (compare != null) {
                            
                            if ((conjunctive &&
                            
                                (compare > 0 ||
                                
                                    (compare == 0 && main instanceof GreaterThan && other instanceof GreaterThanOrEqual))) ||
                            
                                (conjunctive == false &&
                                
                                    (compare < 0 ||
                                    
                                        (compare == 0 && main instanceof GreaterThanOrEqual && other instanceof GreaterThan)))) {
                                bcs.remove(i);
                                bcs.add(i, main);
                            }
                            
                            return true;
                        }
                        return false;
                    }
                }
                
                else if ((other instanceof LessThan || other instanceof LessThanOrEqual)
                    && (main instanceof LessThan || main instanceof LessThanOrEqual)) {
                        if (main.left().semanticEquals(other.left())) {
                            Integer compare = BinaryComparison.compare(value, other.right().fold());
                            if (compare != null) {
                                
                                if ((conjunctive &&