I would not recommend skipping the lock. Locks prevent conflicts between multiple threads. That kind of thing would not be detected by the compiler, but can create very hard to debug problems.
If you don't want to add a member function to CTxMemPool, you can do something like this directly in AppInit2:
{
LOCK(mempool.cs);
mempool.addUnchecked(hash, txNew);
}
Or if you have a non-static member function in CTxMemPool, you can call it like this:
mempool.addGenesis(hash, txNew);
As for whether adding the genesis block coinbase transaction to the memory pool is the right way to solve your problem, I am skeptical, but I'm not familiar enough with the "proper" way to do it to give better advice.
Here is an address you can send coins to: [removed]