Quad-Core 15 @ 3.2 Ghz
12 GB RAM
At first I thought this was related to MC-113981, but it looks like it isn't since that ticket states that mobs will spawn with slabs/etc set as the second block above a block of air. Other than that I haven't been able to locate any tickets that resemble my issue
Sadly there is no easy way to test this, as Superflat "minecraft:bedrock,2*minecraft:dirt,minecraft:grass_block,minecraft:air,minecraft:oak_trapdoor[half=top],minecraft:stone;minecraft:plains;village" doesn't seem to work (you can't specify which half) and the default position is bottom half.
However, you can fill a large area with top-half trapdoors of any type, which should allow for proper testing. This is what I did, and then I killed all non-player entities to check for spawns. Nothing, not even the spiders would spawn, despite the height being enough to allow for the spawn.
Create a superflat world
Once in the world, use the /fill command to place a bunch of top-half trapdoors in the headspace, which should allow for just over 1 3/4 blockspace for mobs to spawn. The larger the area the better.
use /kill @e[type=!player] to kill all the mobs, then again to kill the items.
Walk around, and look for any signs of mobs. They will only be present where you have two full blocks of airspace.
(Optional: Give yourself night vision like I did.)
this is a shame, as this used to be the only effective way to get only creepers to spawn (you'd limit the spawn location sizes via carpet to stop spiders).
I loaded the world in the 1.13.1 Pre1, and it still holds true, except for bats (although they have a highly suppressed spawn rate still, compared to having 2 vertical air blocks.