#Octave, <s>57</s> <s>70</s> <s>67</s> 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.

Creates an anonymous function that first concatenates the input matrix and its transpose.

`spdiags` creates a matrix with the same number of rows as the argument, with the diagonals turned into columns (zero-padded as necessary), so concatenate `spdiags` of the input matrix to get the diagonals and `spdiags` of the input matrix rotated by 90 degrees to get the antidiagonals.

Now take the sum of each column and each is exactly 1.

Sample run on [ideone](https://ideone.com/ksZ3Qv).