**Describe the bug**
Using a `NULL` tuple as a left operand with a chained or operands produce an invalid ClickHouse filtering.

**Does it reproduce on recent release?**
Can be reproduced with `21.2.2.8`

**How to reproduce**
```
SELECT (NULL, NULL) = (8, 0) OR (NULL, NULL) = (3, 2) OR (NULL, NULL) = (0, 0) OR (NULL, NULL) = (3, 1)

Received exception from server (version 21.2.2):
Code: 53. DB::Exception: Received from 127.0.0.1:10000. DB::Exception: Type mismatch in IN or VALUES section. Expected: Nothing. Got: UInt64: While processing (NULL, NULL) IN ((0, 0), (3, 1), (3, 2), (8, 0)). 
```

**Expected behavior**
It should return `NULL`, or at least the same output as `equals(tuple(NULL, NULL), tuple(3, 2))`
if (which_type.isUInt256()) return convertNumericType<UInt256>(src, type);
        if (which_type.isInt8()) return convertNumericType<Int8>(src, type);
        if (which_type.isInt16()) return convertNumericType<Int16>(src, type);
        if (which_type.isInt32()) return convertNumericType<Int32>(src, type);
        if (which_type.isInt64()) return convertNumericType<Int64>(src, type);
        if (which_type.isInt128()) return convertNumericType<Int128>(src, type);
        if (which_type.isInt256()) return convertNumericType<Int256>(src, type);
        if (which_type.isFloat32()) return convertNumericType<Float32>(src, type);
        if (which_type.isFloat64()) return convertNumericType<Float64>(src, type);
        if (const auto * ptype = typeid_cast<const DataTypeDecimal<Decimal32> *>(&type)) return convertDecimalType(src, *ptype);
        if (const auto * ptype = typeid_cast<const DataTypeDecimal<Decimal64> *>(&type)) return convertDecimalType(src, *ptype);
        if (const auto * ptype = typeid_cast<const DataTypeDecimal<Decimal128> *>(&type)) return convertDecimalType(src, *ptype);
        if (which_type.isEnum() && (src.getType() == Field::Types::UInt64 || src.getType() == Field::Types::Int64))
        {
            
            return dynamic_cast<const IDataTypeEnum &>(type).castToValue(src);
        }
        if (which_type.isDateOrDateTime() && !which_type.isDateTime64() && src.getType() == Field::Types::UInt64)
        {
            
            return src;
        }
        if (which_type.isUUID() && src.getType() == Field::Types::UInt128)
        {
            
            return src;
        }
        if (which_type.isDateTime64() && src.getType() == Field::Types::Decimal64)
        {