Fast arrays return false
for non-existing items. This behavior differs from that of non-fast arrays and isn't documented anywhere, as far as I can see.
(%i1) f[42] : 1$ (%i2) f[42]; (%o2) 1 (%i3) f[43]; (%o3) f[43] (%i4) use_fast_arrays : true$ (%i5) g[42] : 1$ (%i6) g[42]; (%o6) 1 (%i7) g[43]; (%o7) false