And, more broadly, is there a pattern when words like 空 have the same pronunciation but different tones, depending on the word?
Generally, first tone means it is related to air/sky/vaccuum/or stressing its emptiness.
空调-air conditioner，空气-air,天空-sky 航空-aviation 真空-vaccuum，空虚-emptiness
Fourth tone usually means something related to blank/room or space/emptiness, and stressing that it can be used or filled
空格-space 空当-free time or space，填空-fill in the blank 空白-blank/空缺-vacancy/空隙-slot/空出时间 (may not be appropriate translation,sorry)
Another interesting example:
这个房间是空的。 This room is empty.(first tone)
哪个房间空出来？ Which room is available(so that I can use)?(fourth tone)
Sure, there is.
Tone and stress in some languages can change the meaning of words in the way that phoneme contrasts do.
In ancient Chinese, some adjectives and nouns would be taken as verb, then their tone ought to fall down.
空气-air its originals is 气. 空 is the adjective component means “empty” which extended in meaning of “sky/under the sky”. It pronounced at the first tone, kōng. 空 in 空调 is the abbreviation of 空气.
空格 its originals is 格-space/room/cell/vacancy/blank. The adjective component ought to fall tone down to be the fourth kòng. It means “to make a space/room/vacancy/blank” (you should take 空 first as a verb to fall down then think about it turns to be a verb-as-adjective without rising up) .
Today, there are also other words with falling-tone-down-rule and all of them carried on as ancient Chinese. Like,
衣, yī, cloth ->衣, yì, wear
解衣(yī)衣(yì)我 put off his cloth to wear on me
衣(yì)锦还乡 wearing one’s brocade and return one’s native place (with honor)
We often say 有个空(kòng, there is a space/ an empty seat/a vacancy/a blank, and 有空 also means “be free at some moment”) for short in oral. But rarely say 衣(yì) today, some people says 衣(yī)锦还乡.
Tone in ancient Chinese and dialects are variety in contrast with in Mandarin, the standard one of the modern Chinese languages. And this falling-tone-down-rule is the pattern you seek.
It would be familiar with that “abuse(/s/) is to abuse(/z/)”.
(The comments below showed the discussion between me and @XL_at_China who had offered some good advises, of cause, critically. Makes I have to revise some inaccuracy above.)