### 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/src/internalClusterTest/java/org/elasticsearch/xpack/esql/action/EsqlActionIT.java
*/
    public void testTopNPushedToLuceneOnSortedIndex() {
        var sortOrder = randomFrom("asc", "desc");
        createAndPopulateIndex(
            "sorted_test_index",
            Settings.builder().put("index.sort.field", "time").put("index.sort.order", sortOrder).build()
        );
        int limit = randomIntBetween(1, 5);
        try (EsqlQueryResponse results = run("from sorted_test_index | sort time " + sortOrder + " | limit " + limit + " | keep time")) {
            logger.info(results);
            Assert.assertEquals(1, results.columns().size());
            Assert.assertEquals(limit, getValuesList(results).size());
            
            assertEquals("time", results.columns().get(0).name());
            assertEquals("long", results.columns().get(0).type());
            boolean sortedDesc = "desc".equals(sortOrder);
            var expected = LongStream.range(0, 40)
                .map(i -> epoch + i)
                .boxed()
                .sorted(sortedDesc ? reverseOrder() : naturalOrder())
                .limit(limit)
                .toList();
            var actual = getValuesList(results).stream().map(l -> (Long) l.get(0)).toList();
            assertThat(actual, equalTo(expected));
        }
    }
    /*
     * Create two indices that both have nested documents in them. Create an alias pointing to the two indices.
     * Query an individual index, then query the alias checking that no nested documents are returned.
     */