Gardening leave is usually for positions where the employee holds competitive information on active deals etc. During the gardening leave they're under NDA which allows for their competitive information to go stale before starting at a new company.
Non-disclosure, non-compete and notice are different things that you're mixing together.
Notice is compulsory -- you simply cannot let go of the employee immediately and must continue paying them for 3 months (or up to 4 months in some countries where every calendar month started is due).
Non-compete is opt-in by the employer, and allows them to prevent you from working for a competitor (for up to one year I believe). In exchange the employer must still pay your previous salary (some employers will ask employees without compensation, but that's not legally enforceable).
Non-disclosure means that you're not able to disclose company and trade secrets, similarly to an NDA. It is a standard term in most employment contracts and usually applies for one year, regardless of the non-compete being enforced or not.
It is fairly common to send people for garden leave during their notice, but actually extending it further by enforcing the non-compete is a costly thing and will only be done for strategic employees.
It's essentially a mechanism where they avoid having someone with a negative mentality that's not going to work hard anyway around the office.