I'm sure there are other scenarios where the queueing model might be used, but for myself, where I use it most is when I'm performing data validations and I want a set number of transactions to occur. I think the key here to this model is the # of transactions that occurs is determined by the value you set in each script. Say I want 10,000 transactions of a particular type/script and 100 of another. I could have 100VUs running the first script and set the transaction count to 100 and in the second script have 100 users with the transaction count to 1. Or 2 users with the transaction count to 50.
Queuing is useful when you want to introduce a fixed amount of work on the system. A repeatable model like this will allow you to measure hardware utilization and also gather important metrics from your scripts that were run.
I find this model very useful in point-to-point comparisons. For example, you can run the workload on a new code release to see the impact when compared against previous releases.