A list and an array are two different things. Lists are unbounded series of values, whereas an array is a bounded series of values. Arrays can either live anonymously or symbolically through a variable or variable container. Lists however, can be looked at as scalar values in an unbounded state, as seen in the right-hand side of a list context assignment, subroutine calling/returning (foibles acknowledged), iteration and slicing (and more, no doubt). However, in scalar context what might look like a list is really just the comma operator working on a series of values.
Now, in the case of $aap you're creating a reference to nothing, since there's no such thing as a list in scalar context (in as much as one could admire a 'sunny night') and since perl can't create a reference to nothing, undef is used. On reflection it may seem a little odd that perl allows one to reference nothing, but such is the orthogonality of perl's syntax and (mostly) DWIM nature.
update: added last sentence