#TI-Basic (TI-83 series), <s>28</s> 27 bytes (61 characters)

 :Prompt [A]
 :{0→X
 :Matr►list(ref([A])ᵀ,2,X
 :not(max(abs(ᶫX

Computes the row-echelon form of the matrix `[A]`, and stores its second row in `ᶫX`. Then `max(abs(ᶫX` will be zero if `ᶫX` consists only of zeroes, and a positive value otherwise, which `not(` changes to 1 if the matrix is rank one, 0 otherwise.

For a 1 by 1 matrix, `ᶫX` will start at {0} and then not get changed when we try to look at the nonexistent second row of the matrix.

----------

*-1 byte thanks to Scott Milner*