Dos javadocs de OrderColumn:"A coluna de pedido deve ser do tipo integral. O provedor de persistência mantém uma ordenação contígua (não esparsa) dos valores da coluna de ordem ao atualizar a associação ou coleção de elementos. O valor da coluna de ordem para o primeiro elemento é 0."
Assim, a expectativa é que os valores de OrderColumn comecem de 0 e sejam valores contínuos. Portanto, quando os valores não são contínuos, o Hibernate adiciona elementos nulos à sua lista Java.
Eu acho que esse comportamento de OrderColumn é semelhante ao comportamento de índice de lista no mapeamento de xml de hibernação.