**How to reproduce**
```
$ build_debug/programs/clickhouse local --query "SELECT DISTINCT NULL, if(number > 0, 't', '') AS res FROM numbers(1) ORDER BY res"
clickhouse: /home/milovidov/work/ClickHouse/src/Common/HashTable/HashTableKeyHolder.h:92: void keyHolderPersistKey(DB::ArenaKeyHolder &): Assertion `holder.key.size > 0' failed.
```

https://s3.amazonaws.com/clickhouse-test-reports/44824/6e946cc75779980b65804c70898beaee3d2e621e/fuzzer_astfuzzerdebug/report.html

See https://aretestsgreenyet.com/
void setZero() { version = 0; }
    
    static constexpr bool need_zero_value_storage = false;
    ClearableHashTableCell() {} 
    ClearableHashTableCell(const Key & key_, const State & state) : BaseCell(key_, state), version(state.version) {}
};
template <
    typename Key,
    typename Hash = DefaultHash<Key>,
    typename Grower = HashTableGrowerWithPrecalculation<>,
    typename Allocator = HashTableAllocator>
class ClearableHashSet
    : public HashTable<Key, ClearableHashTableCell<Key, HashTableCell<Key, Hash, ClearableHashSetState>>, Hash, Grower, Allocator>
{
public:
    using Base = HashTable<Key, ClearableHashTableCell<Key, HashTableCell<Key, Hash, ClearableHashSetState>>, Hash, Grower, Allocator>;
    using typename Base::LookupResult;
    void clear()
    {
        ++this->version;
        this->m_size = 0;
    }
};
template <
    typename Key,
    typename Hash = DefaultHash<Key>,
    typename Grower = HashTableGrowerWithPrecalculation<>,
    typename Allocator = HashTableAllocator>
class ClearableHashSetWithSavedHash : public HashTable<