The function DeleteCases could be used.
Create a matrix where 0 is twice as likely to occur as 1:
In[1]:= matrix = RandomChoice[{50, 25} -> {0, 1}, {20, 3}]
Out[1]= {{1, 0, 0}, {0, 0, 0}, {0, 0, 1}, {1, 1, 1}, {0, 0, 0},
{1, 0, 0}, {1, 0, 1}, {0, 0, 1}, {0, 0, 0}, {0, 0, 0},
{0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 1, 0}, {0, 0, 1},
{0, 1, 1}, {1, 0, 0}, {1, 1, 0}, {1, 0, 0}, {0, 1, 0}}
In[2]:= Length@matrix
Out[2]= 20
Then DeleteCases could remove the rows that does not have at least one nonzero element:
In[3]:= matrixCleanedOfAllZeroRows = DeleteCases[matrix, {0 ..}]
Out[3]= {{1, 0, 0}, {0, 0, 1}, {1, 1, 1}, {1, 0, 0}, {1, 0, 1},
{0, 0,1}, {0, 1, 0}, {0, 0, 1}, {0, 1, 1}, {1, 0, 0},
{1, 1, 0}, {1, 0, 0}, {0, 1, 0}}
In[4]:= Length@matrixCleanedOfAllZeroRows
Out[4]= 13