MySQL and other SQL databases have systems to prevent data being corrupted called locks. A lock can affect a single row, or an entire table based on what your app is trying to do.
Let's say your app is a series of on/off switches and each user sees only their own set of switches. Each user should therefore have sole WRITE (INSERT) access to the records which determine whether their switch is on or off. This is good, the users won't get in each others' way.
If, however you are also constantly READING (SELECT) from the entire database you may find that this could delay the WRITE instructions from users.
Also, if you are having multiple entities WRITE to the same records in a table ensure that you understand transactions. The short version is: if you read data, and then make a calculation/decision/action on that data and write new data as a result, you should use a transaction to ensure that the data you read in the first place doesn't change while you're processing the command. This is effectively the queue you are considering creating, so no, don't make your own.