Here is my possible explanation and "rule". I think they're relatively simple and fit the data I was able to find, though I could be biased, confused or both.
Sometime in the distant past, the word that would evolve into ohne was used less like a preposition and more to form an adjective, something like the way you use "-free" in English or "-frei" in German. At least that seems to be consistent with what I was able to decipher of the etymology on DWDS. The word evolved into a preposition but it still has some vestigial characteristics of an adjective forming affix. You wouldn't say Ich bin eine mantelfrei, just Ich bin mantelfrei; in other words you don't use an article when the noun is turned into an adjective. But in some cases, such as with a definite article, the word behaves more like a preposition, something like frei von or "free of", which would explain why the you'd use an article in some cases and sometimes not. Another case where you can't form an adjective is when the noun already has an adjective attached, so you'd use ein(e)(en) in that case as well.
Here is the proposed rule:
It's unusual to use ohne with an indefinite article for an unmodified noun, even if the noun would normally require one.
Es ist zu kalt ohne Mantel. -- "It's too cold without a coat (coat-free)."
In some cases, ein, eine or einen, in the sense of "one", or "a single" can be added for emphasis:
Ich bin zur Zeit ohne einen Cent. -- "I'm currently without a single cent."
If the noun is modified by an adjective then an article is used.
Es ist zu kalt ohne einen schweren Mantel. -- "It's too cold without a heavy coat."
Anyway, at this point I don't know if this idea is completely off the wall or not, so I'm willing to listen to other theories and proposals.