Pokeballs can fail at catching a Pokemon, even if it has extremely low HP.
To get the best results when catching a Pokemon, (With any Pokeball, though Ultra Balls work the best, as they are the best Pokeball that you can buy in Red/Blue) lower it's HP and give it a status effect. (If I remember correctly, sleep works the best)
Source:
Knowledge