The value "nothing" does not really exist in computer science. Of course in C we have NULL and in Nim we have nil for ref and pointer types. NULL and nil are special well defined values, often binary zero, which have a special meaning by definition: The absence of a value.
In Nim we have the seq type which has additional to the content a len field which gives information about absence from data when len field is zero, and we have option types which works in a similar way (I have never used option types myself.) If you want to use arrays, you may consider refs or ptrs to that arrays instead, then you can test for nil. Or, you can define your "nil" yourself. For an array of 4 ints, you are free to define [int.low, 0, 0, 0] as you nil value. Of course you can not use that value for real data content then, but that is generally no problem. You can pass such as special value as your nil. Or learn about Nim's option types. I have to do myself. I would assume some overhead for that types, so I avoided them till now.