3 of 6 Build matrix before sum.

Octave, 57 70 67 51 bytes

@(A)all(sum([A A' (d=@spdiags)(A) d(rot90(A))])==1)

Takes input as a binary matrix with 1 representing a Queen and 0 representing an empty space.

Sample run on ideone.