1000 is a blockout code that prevents the ADS-B transmitter from also sending its discrete code, if you enter 1000 on your transponder no Mode 3/A code is sent in the ADS-B OUT message. Its part of AC-20-165B that outlines ADS-B
Mode 3/A Code.
Currently ATC automation relies on the Mode 3/A code to identify
aircraft under radar surveillance and correlate the target to a flight
plan. The mode 3/A code is a four digit number ranging from 0000 to
7777. Secondary Surveillance Radars (SSR) and ADS-B will concurrently provide surveillance, so the Mode 3/A code is included in the ADS-B
OUT message and is required to be transmitted by § 91.227.
Note: ADS-B systems will not transmit the Mode 3/A code if the Mode 3/A code is set to 1000.
As of last weekend when I was flying (in an ADS-B equipped aircraft through controlled airspace) discrete codes are still being assigned. So then why would you need a squak code that overrides the very function of a transponder by preventing the sending of your "unique" squak? every aircraft is assigned a discrete 24-bit address so ADS-B is capable of unique identification without traditional 4 digit squak codes.
ICAO 24-bit Address.
The ICAO 24-bit address is a unique address assigned to an aircraft
during the registration process. ICAO 24-bit addresses are defined
blocks of addresses assigned for participating countries or states
worldwide. In the United States, civil aircraft are assigned an
address from an encoding scheme based on the aircraft registration
number (“N” number). Additional information regarding the 24-bit
address can be found in ICAO Annex 10, Part I, Volume III, appendix to
Chapter 9, A World-Wide Scheme for the Allocation, Assignment and
Application of Aircraft Addresses.
Since they don't offer an explanation as to why the 1000 code exists my educated guess is to prevent double target identification in radar systems that are capable of both Mode-A/C/S and ADS-B