I don't know anything about /9 not being used (I think it is, I see no reason it shouldn't), but /31 makes no sense since all it reserves is a single IP address for the subnet. And what good is a network that can only host one IP address?
Well... sometimes when configuring switches / routers / firewalls (Cisco in particular) you define the range by it's network ID and the mask. For example the below would be used to allow sources 10.10.10.10-10.10.10.11 to destination 10.10.11.1:
access-list example_acl permit ip 10.10.10.10 255.255.255.254 10.10.11.1 255.255.255.255
You may also wish to read up on it's use in point to point networks as described in RFC3021:
A /9 subnet mask wastes 128 IP addresses because the 128-255 block can't be used since it contains the broadcast address. The /31 or .254 can't be used because you wouldn't have any room for the wire's addresses (network and broadcast). /30 or .252 is the smallest you would use--typically on point to point links.