This should've been fixed in Qt 6.x.
Since QSSGLoadedTexture::loadQImage() doesn't covert QImage::Format_Mono to 8bit/32bit color space, loading 1bpp PNG would crash or upload garbage data.
As a workaround, we can make QQuickImage process 1bpp png:
but unfortunately, this doesn't work for TextureInput of CustomMaterial as of Qt 5:
Project to reproduce the problem is attached.