Yes. I believe I satisfied your requirements.
onesCount // Select[Length@#[[2]] > 0 && #[[2, 2]] == rows &]
Returns an empty list, as I showed above, because no columns satisfy the condition.
In the second example
onesCount // Select[Length@#[[2]] > 0 && #[[2, 2]] == rows - 1 &]
(* {{1, {1, 43}}, {2, {1, 43}}, {62, {1, 43}}, {82, {1, 43}}, {96, {1, 43}}} *)
The first element of each sub-list is the index of the column that has one value not equal to one.
So columns 1, 2, 62, 82, 96 satisfy that condition, they all have 43 1's
e.g. column 96 has 43 1's and one 0
colmat[[All, 96]] // Tally
(* {{1, 43}, {0, 1}} *)