Read the driver specific manual pages. For GeoTIFF format https://gdal.org/drivers/raster/gtiff.html
See Creation Options
NBITS=n: Create a file with less than 8 bits per sample by passing a
value from 1 to 7. The apparent pixel type should be Byte. Values of
n=9…15 (UInt16 type) and n=17…31 (UInt32 type) are also accepted. From
GDAL 2.2, n=16 is accepted for Float32 type to generate half-precision
floating point values.
Use -ot byte -co NBITS=1 in your gdal_translate command. Find out how to do the same with Python if you prefer that.
Gdalinfo shows the data type as byte but it is also telling the number of bits as 1.
gdal_translate -co nbits=1 byte.tif binary.tif
Input file size is 87, 39
0...10...20...30...40...50...60...70...80...90...100 - done.
gdalinfo binary.tif
Driver: GTiff/GeoTIFF
Files: binary.tif
binary.tif.aux.xml
Size is 87, 39
...
Band 1 Block=87x39 Type=Byte
Image Structure Metadata:
NBITS=1
The data types supported by TIFF are
- BYTE 8-bit unsigned integer
- ASCII 8-bit, NULL-terminated string
- SHORT 16-bit unsigned integer
- LONG 32-bit unsigned integer
- RATIONAL Two 32-bit unsigned integers
Source: http://paulbourke.net/dataformats/tiff/tiff_summary.pdf
1-bit GeoTIFF contains bytes but by the metadata it is known that byte has only one meaningful bit. Such data can be compressed effectively with compression methods which were originally developed for faxes. Have a try with -co compress=CCITTFAX3 or -co compress=CCITTFAX4.