Is there any risk in SELECT ... FOR UPDATE outside transaction scope in MySQL?
A query is always in a transaction even if you don't start it explicitly.
SELECT FOR UPDATE acquires an exclusive lock on rows it matches. There is a possibility that other transactions want to modify same records and will have to wait until the SELECT FOR UPDATE finishes and release the lock.

So. Nothing bad will happen if you run SELECT FOR UPDATE, but overall performance may be lower due to possible lock waits.

Deadlocks are possible, too. If other transaction holds a shared lock and than wants to update the records while SELECT FOR UPDATE is waiting.