Limited list size while using IF statement

The output length is being governed by the shortest list length within the data-set due to lacing.
This is the built-in behaviour, possibly to avoid data loss if lacing is not set correctly, as I can recall seeing this previously on the forum, such as here.

In cases such as this, using OOTB nodes or a small amount of python will give you the desired result.

input = IN[0]
list1 = [1,2,3]
list2 = [1,2,3,4,5]
list3 = [1,2,3,4,5,6,7]
if input == 1:
	OUT = list1
elif input == 2:
	OUT = list2
else:
	OUT = list3