I like the concept discussed in the OP but I also feel like some of the responses are (perhaps on purpose) focusing on semantics.
I was wondering if Miners are forced to fill full blocks or almost full block (according current block limit of 1MB) in bitcoin network [...]
I think that OP's intent was never to imply that blocks should always reach the 1MB limit even if that would require filling them with trash...
I think that OP is simply asking something along the lines of
what would be the effects of forcing miners to include pending transactions in their blocks? What is the most reasonable explanation to me is that blocks should be filled with as many
PENDING transactions as possible. Keep in mind that network propagation through nodes is already serving the purpose of checking transaction validity. If a transaction remains in mempools, it should be valid.
And correct me if I'm wrong, but I think that currently there's a bit of a disconnect between user intents, and miner interests.
Miners need fast propagation of their blocks to avoid orphans. They're after profit and efficiency.
Miners would also have it int their interest to focus on high-fee transactions. The so called fee-market already has it that higher fee transactions are confirmed faster. For example:
https://bitcoinfees.earn.com/However, users transacting BTC have it in their interest to have lower fees and faster transaction times.
What OP proposes, could be a potential answer to coercing miners in serving user interests more thoroughly.
The answer to this hypothetical of course could be better answered by developers/pool admins etc.
My hypothesis would be that on times of low demand, such measure would allow for zero fee transactions to go through.
The potential effects on demand are a mystery.
Median block size for now shows there's still space in blocks to cover for current transaction volumes. BUT, let's say that the change proposed in OP was to be implemented, then all miners would have to include all those transactions in their blocks even without fee. BTC isn't too close, but also not THAT far from reaching capacity of its blocks. With zero fee transactions, surely demand to transact in BTC would increase.
And then, who's to have a say on which transactions are prioritized? It might have to be hard-coded as some sort of rule set. But then, the power to decide the rules about transaction verification would lie in the hands of developers. Taking away the freedom of miners to confirm transactions based on own standards ends up being a political issues with conflicting interests at play.
And keep in mind that I'm not even discussing how such a hardcoded measure might be enforced to miners. For example, what do you do if a miner doesn't follow the central rules for which transactions to prioritize for verification? Should they be thrown out of the network? From a technical perspective, one could argue that miners have larger bargaining power in this debate. They could choose to support such measure or everyone would risk a chain split.
TL;DR:
The question in the OP is thoughtful, but (at least to me), the debate on why such measure should be implemented or not ends up being political. Maybe it's just better to leave the fee-market in place in order to avoid having to deal with such issues.