At a time there is only one block generating. Then transactions are accumulating in that block. then when block reach 1 mb, block is attributed to one miner who gets the subsidies and the transaction fees related to that block. am I missing something?
Here is how it works: Each miner assembles some number of unconfirmed transactions into a block (up to 1 MB), and then tries to add that block to the block chain. While each miner is trying to add their block, more unconfirmed transactions come in and the miner may or may not include them in their block. Once a winning block is added, the losing miners throw out their unsuccessful attempt, plus the transactions that were in the winning block, and start over.