px.xd + py.yd <= px.w1 + py.w2
where (xd, yd) is the demanded bundle at those prices.The above condition should hold for all individuals.
Put another way, competitive equilibrium can occur even with excess supply.
I won't agree with the other response, I would say that when px=0, your budget line for person 2 is essentially 0*x + py*y=0, which for non zero py becomes y=0, x=anything. Since utility is always zero, the person is indifferent to (x,0) where x is any value from 0 to infinity.
Geometrically the budget line is simply the x axis, which COINCIDES with the indifference curve (U=0) for infinite number of points, hence any bundle on that conincident line (x-axis)is an optimal/demanded bundle.
Demand always has to equal supply, you just made a little error in finding the demand.