When can return type of generated GraphQL queries be null?

I think this goes along the lines of my clarification for my own purpose of the !:

But I did not take an account for null


It appears my logic may be off

and another reply:

They can all be empty arrays, but [ID] can contain elements that are null whereas [ID!] can’t.