Always reproduced:

```
milovidov-desktop :) create table table_map (a Map(String, String), b String) engine = MergeTree() order by a;

CREATE TABLE table_map
(
    `a` Map(String, String),
    `b` String
)
ENGINE = MergeTree
ORDER BY a

Query id: 8f8120c1-c165-452a-815f-2bcae3957e2a

Ok.

0 rows in set. Elapsed: 0.002 sec. 

milovidov-desktop :) SELECT b FROM table_map WHERE a = map('name', NULL, '', NULL)

SELECT b
FROM table_map
WHERE a = {'name', NULL, '', NULL}
```
{
        return [element_wrappers = getElementWrappers(from_kv_types, to_kv_types), from_kv_types, to_kv_types]
            (ColumnsWithTypeAndName & arguments, const DataTypePtr &, const ColumnNullable * nullable_source, size_t input_rows_count) -> ColumnPtr
        {
            const auto * col = arguments.front().column.get();
            const auto & column_array = typeid_cast<const ColumnArray &>(*col);
            const auto & nested_data = typeid_cast<const ColumnTuple &>(column_array.getData());
            Columns converted_columns(2);
            for (size_t i = 0; i < 2; ++i)
            {
                ColumnsWithTypeAndName element = {{nested_data.getColumnPtr(i), from_kv_types[i], ""}};
                converted_columns[i] = element_wrappers[i](element, to_kv_types[i], nullable_source, input_rows_count);
            }
            return ColumnMap::create(converted_columns[0], converted_columns[1], column_array.getOffsetsPtr());
        };
    }
    WrapperType createMapWrapper(const DataTypePtr & from_type_untyped, const DataTypeMap * to_type) const
    {
        if (const auto * from_tuple = checkAndGetDataType<DataTypeTuple>(from_type_untyped.get()))
        {
            if (from_tuple->getElements().size() != 2)
                throw Exception{"CAST AS Map from tuple requeires 2 elements.\n"
                    "Left type: " + from_tuple->getName() + ", right type: " + to_type->getName(), ErrorCodes::TYPE_MISMATCH};
            DataTypes from_kv_types;
            const auto & to_kv_types = to_type->getKeyValueTypes();