Okay, I'm going off the Catch Chance formula found in the document in
this thread; it matches
Bulbapedia's formula, but there's still a chance that it may not be correct.
In any case, the formula is as follows:
q = (3 * "max HP" - 2 * "current HP") * "Status Mod" * "Poke Ball Mod" * "Catch Rate" / (3 * "max HP")
If q is at least 255, the Pokemon is caught for sure. If not, the game runs through another formula, but that doesn't matter for this question. All that matters here is that we're looking for the highest q value.
For your question, I'll compare a sleeping Pokemon at full health with a non-statused Pokemon at 25% (I believe that's when it goes into the red; if not, it'll still simplify things.) To further simplify things, I'll assume that we're trying to catch a Spiritomb with a regular Poke Ball (Poke Ball Mod = 1, Catch Rate = 100).
First, the full-health sleeping Pokemon. In this case, the Status Mod = 2 and current HP = max HP. Put those in the formula like so:
q = (3 * max HP - 2 * max HP) * 2 * 1 * 100 / (3 * max HP)
q = (1 * max HP) * 200 / (3 * max HP)
q = max HP * 200 / (3 * max HP)
q = 200 / 3
q = ~66.7
Did you follow that? Now for the 25% health Pokemon. In this case, the Status Mod = 1 and current HP = .25 * max HP. Put those in the formula like so:
q = (3 * max HP - 2 * (.25 * max HP)) * 1 * 1 * 100 / (3 * max HP)
q = (3 * max HP - .5 * max HP) * 100 / (3 * max HP)
q = 2.5 * max HP * 100 / (3 * max HP)
q = 250 * max HP / (3 * max HP)
q = 250 / 3
q = ~83.3
66.7 < 83.3
Therefore, the low-health Pokemon would be easier to catch.
EDIT: Looking at the numbers again, it occurs to me that the chance of catching a full-health sleeping Pokemon equals that of a non-statused Pokemon at 50% health. I just found that a little interesting.