#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*