1/ Is this chip programmable at 3.3v? Can’t see why not, but I may be wrong
2/ Does it need the external crystal (8Mhz) attached, or should it upload without it?
It depends on whether the fuses have been configured to require an external clock source. If so, then you won’t be able to do anything with the chip until you provide a clock source, even if you only connect it just long enough to set the fuses to use the internal oscillator. The factory default fuse setting is to use the internal oscillator. However, if you buy chips “with Arduino bootloader”, they will be set to use an external clock since they are expected to be put in an Uno.
cannot get it to upload with the USBasp (Processor set to ATMega328p, 3.3v. 8Mhz - upload using programmer).
Note that you need to use a Tools > Board selection in the Arduino IDE that is configured for the internal oscillator and then do a Tools > Burn Bootloader to set the fuses correctly. The Pro Mini uses an external oscillator so you can’t use that board definition. I recommend using MiniCore, which does have an internal clock selection (Tools > Clock > 8 MHz internal):
3/ What am I missing? Clearly something
You should make a connection to the other ground pin.
You should make a connection between the two power rails on your breadboard.
You should have a 0.1 uF decoupling capacitor on both power lines into the chip, as close to the chip as possible.
That image is from Nick Gammon’s excellent tutorial: