**Describe the bug**

`sumIf` returns incorrect results in some cases with Nullable arguments.

**How to reproduce**

* Which ClickHouse server version to use
Latest master/arcadia version

* Queries to run that lead to unexpected result
```sql
:) select sumIf(toFloat64OrZero(b), a = 0) as r1, sumIf(cast(b as Float), a = 0) as r2, sum(if(a = 0, toFloat64OrZero(b), 0)) as r3 from (select arrayJoin([1, 2, 3, NULL]) as a, toNullable('10.0') as b)

SELECT
    sumIf(toFloat64OrZero(b), a = 0) AS r1,
    sumIf(CAST(b, 'Float'), a = 0) AS r2,
    sum(if(a = 0, toFloat64OrZero(b), 0)) AS r3
FROM
(
    SELECT
        arrayJoin([1, 2, 3, NULL]) AS a,
        toNullable('10.0') AS b
)

Query id: 2e4e320d-e52a-4514-bc6f-118485558191

┌─r1─┬─r2─┬─r3─┐
│ 10 │  0 │  0 │
└────┴────┴────┘
```
**Expected behavior**

All results are 0.

**Additional context**

It breaks when null values in Nullable column are compared with `assumeNotNull` from this column.
It also only breaks when first argument is Nullable too.


throw Exception(ErrorCodes::ILLEGAL_AGGREGATION,
                "Nested identical combinator '{}' is not supported",
                combinator_name);
        }
#if defined(UNBUNDLED)
#pragma GCC diagnostic pop
#endif
        DataTypes nested_types = combinator->transformArguments(argument_types);
        Array nested_parameters = combinator->transformParameters(parameters);
        AggregateFunctionPtr nested_function = get(nested_name, nested_types, nested_parameters, out_properties);
        return combinator->transformAggregateFunction(nested_function, out_properties, argument_types, parameters);
    }
    String extra_info;
    if (FunctionFactory::instance().hasNameOrAlias(name))
        extra_info = ". There is an ordinary function with the same name, but aggregate function is expected here";
    auto hints = this->getHints(name);
    if (!hints.empty())
        throw Exception(ErrorCodes::UNKNOWN_AGGREGATE_FUNCTION,
                        "Unknown aggregate function {}{}. Maybe you meant: {}", name, extra_info, toString(hints));
    else
        throw Exception(ErrorCodes::UNKNOWN_AGGREGATE_FUNCTION, "Unknown aggregate function {}{}", name, extra_info);
}
AggregateFunctionPtr AggregateFunctionFactory::tryGet(
    const String & name, const DataTypes & argument_types, const Array & parameters, AggregateFunctionProperties & out_properties) const
{
    return isAggregateFunctionName(name)
        ? get(name, argument_types, parameters, out_properties)
        : nullptr;
}
std::optional<AggregateFunctionProperties> AggregateFunctionFactory::tryGetPropertiesImpl(const String & name_param) const