Or is p2sh only for multi signature transactions?
You can certainly create a p2sh address that you can spend. p2sh is for any script, not just multi-signature scripts.
Of course, you can also create a p2sh address which cannot be spent because there is no script that both hashes to that value and succeeds when checked.
IOW, anyone can write a script that says, in effect,
if (false) then
the output may be spent.
and put funds in a p2sh transaction having a hash that corresponds to that script. It's just not a very useful script. There's already 1BitcoinEaterAddressDontSendf59kuE, which does the same thing. But people don't usually create such scripts (which can't be spent) on purpose.