### Description

Not sure if it's a regression or not but when grouping by just one keyword field, the null group is not returned:
```
from employees | stats by gender | sort gender 
```
should return [F, M, null] yet only [F, M] are.

It looks like the hashing function (whether ordinal or not) ends up dropping null along the way. 
This doesn't happen with multiple keys as long as the keyword is not the first key:

```
from employees | stats by languages, gender | sort desc
```

```
null | null
null | F
null | M
etc...
```

x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/operator/OrdinalsGroupingOperator.java
}
    @Override
    public boolean isFinished() {
        return finished && valuesAggregator == null && ordinalAggregators.isEmpty();
    }
    @Override
    public void close() {
        Releasables.close(() -> Releasables.close(ordinalAggregators.values()), valuesAggregator);
    }
    private static void checkState(boolean condition, String msg) {
        if (condition == false) {
            throw new IllegalArgumentException(msg);
        }
    }
    @Override
    public String toString() {
        return this.getClass().getSimpleName() + "[" + "aggregators=" + aggregatorFactories + "]";
    }
    record SegmentID(int shardIndex, int segmentIndex) {
    }
    static final class OrdinalSegmentAggregator implements Releasable, SeenGroupIds {
        private final List<GroupingAggregator> aggregators;
        private final ValuesSource.Bytes.WithOrdinals withOrdinals;
        private final LeafReaderContext leafReaderContext;
        private final BitArray visitedOrds;
        private BlockOrdinalsReader currentReader;
        OrdinalSegmentAggregator(
            List<GroupingAggregator> aggregators,
            ValuesSource.Bytes.WithOrdinals withOrdinals,
            LeafReaderContext leafReaderContext,