This simple PR adds missing tests for the reject reason bad-txns-prevout-null, which is thrown in the function CheckTransaction(): https://github.com/bitcoin/bitcoin/blob/a62fc35a150da584d39d7cd01ade14bbb5002fb9/src/consensus/tx_check.cpp#L52-L54
Basically this condition is met for non-coinbase transactions (the code snippet above only hits if !tx.IsCoinBase()) with coinbase-like outpoints, i.e. hash=0, n=0xffffffff.
Can be tested by running the functional tests feature_block.py, p2p_invalid_tx.py and mempool_accept.py. Not sure if the redundancy in the tests is desired (I guess it would make sense if the mempool acceptance test also makes use of the invalid_txs templates?).