"If I do s1(1) it returns a1." No, it also returns a structure.
Both s1 and structElement are arrays of a single struct:
Everything in matlab is an array. Scalars (numbers, structs, objects, etc.) are stored as array of size 1x1