But aren't empty blocks mined when other miners are gathering the data of previous block.So how is it a waste of hashing power and not considered as a way to use that hash time in making profit?

AFAIK, mining an empty block isn't always profitable.

At the first place Mining was really designed to solve those problems in the block even tho it does not have any transactions with it still the block must go on we can't wait for a block just to be full of transactions worth 1 Kilobytes. we can't even blame anyone for this really.

It's pretty much never profitable, if the miner is doing so when there are transactions out there. The only time that miners actually mine empty blocks is when they receive a new block by listening to other miner's stratum. Else, mining an empty block would help reduce the chances of it being an orphan but it doesn't matter; the benefits of including transactions for the transaction fees outweighs this significantly.

Increases the amount of work performed on the blockchain, making all previous blocks more secure (full blocks also do this)

Inhibits the overall size of the blockchain (slightly)

Bad things

Transaction rate not maximised

The incentive to mine empty blocks is pretty low overall, despite their frequency. Let's not forget that improvements in propagating blocks and in the efficiency of the Bitcoin client have helped to reduce that incentive alot over the years. As long as competition in mining remains relatively open, empty (or half empty) blocks will be great way for miners to decrease their profits.

If I'm not mistaken, most of those empty blocks was mined very close timing to the previous blockI think it has something to do with the algorithm on picking up transactions in that short timethe miner probably has pre-set list of transactions to be included in next block,and when two blocks are found in a very short time, the latter miner didn't have time to pick other transactions so they removed those already included in previous block (from their current list) to avoid duplicate inclusion on current mined blockwhich leaves no transactions to be included if his set was the same as all included transactions in previous blockjust as mentioned by ranochigo about block's validity

But aren't empty blocks mined when other miners are gathering the data of previous block.So how is it a waste of hashing power and not considered as a way to use that hash time in making profit?

It is not a waste of hashing power in term of securing bitcoin networkbut it is a missed opportunity to gain extra profit from transaction feesThey prioritize the validity of mined block and block reward over extra profit from transaction fees

It's bad because its against the nash-equilibrium. Minting empty blocks does not benefit the users of the system, who are trying to transact. Nash equilibrium says that it ought to be more profitable for miners to include transactions due to the fees, but if miners are finding that 's not the case, we've got problems.