### 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
private final boolean isDiv; 
            private final int opRightSign; 
            MulDivSimplifier(BinaryComparison comparison) {
                super(comparison);
                isDiv = operation.symbol().equals(DIV.symbol());
                opRightSign = sign(opRight);
            }
            @Override
            boolean isOpUnsafe() {
                
                if (operation.dataType().isInteger() && isDiv) {
                    return true;
                }
                
                if (isDiv == false && opLeft.dataType().isInteger()) {
                    long opLiteralValue = ((Number) opLiteral.value()).longValue();
                    return opLiteralValue == 0 || ((Number) bcLiteral.value()).longValue() % opLiteralValue != 0;
                }
                
                return opRightSign == 0;
            }
            @Override
            Expression postProcess(BinaryComparison binaryComparison) {