I am using `nullIf` in aggregations to skip unwanted empty strings. Strangely enough `any` function picks `NULL`s resulting from `nullIf`, i.e. does skip them as it should do with NULLs.

### Minimal reproducing code
```sql
select any(nullIf('', ''), 'some text');
```
produces:
```
┌─nullIf('', '')─┐
│ ᴺᵁᴸᴸ           │
└────────────────┘
```

**Expected behavior**
This should return 'Some text'

### Other example with table
```sql
create temporary table vv (m Nullable(String));
insert into vv (*) values (''), ('Some text');
select any(nullIf(m, '')) from vv;
```
result:
```
┌─nullIf(any(m), '')─┐
│ ᴺᵁᴸᴸ               │
└────────────────────┘
```
expecting 'Some text' as before
#include <Common/typeid_cast.h>
#include <Parsers/ASTLiteral.h>
#include <Parsers/ASTFunction.h>
#include <Parsers/ASTIdentifier.h>
#include <Parsers/ASTSubquery.h>
#include <Interpreters/RewriteAnyFunctionVisitor.h>
#include <AggregateFunctions/AggregateFunctionFactory.h>
#include <IO/WriteHelpers.h>
#include <Parsers/ASTTablesInSelectQuery.h>
namespace DB
{
namespace
{
bool extractIdentifiers(const ASTFunction & func, std::unordered_set<ASTPtr *> & identifiers)
{
    for (auto & arg : func.arguments->children)
    {
        if (const auto * arg_func = arg->as<ASTFunction>())
        {
            
            
            
            
            ///     ┌─number─┬─arrayJoin(array(array(), array()))─┐
            ///     │                                       │