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
///     │                                       │
            ///     └────────┴────────────────────────────────────┘
            /// While should be:
            ///     ┌─number─┬─any(arrayJoin(array(array(), array())))─┐
            ///     │                                            │
            ///     └────────┴─────────────────────────────────────────┘
            if (arg_func->name == "arrayJoin")
                return false;
            if (arg_func->name == "lambda")
                return false;
            // We are looking for identifiers inside a function calculated inside
            // the aggregate function `any()`. Window or aggregate function can't
            // be inside `any`, but this check in GetAggregatesMatcher happens
            /
            if (arg_func->is_window_function
                || AggregateFunctionFactory::instance().isAggregateFunctionName(
                    arg_func->name))
            {
                return false;
            }
            if (!extractIdentifiers(*arg_func, identifiers))
                return false;
        }
        else if (arg->as<ASTIdentifier>())
            identifiers.emplace(&arg);
    }
    return true;
}
}
void RewriteAnyFunctionMatcher::visit(ASTPtr & ast, Data & data)