When you do upload-using-programmer, you must have the board you are uploading to selected (you'll get an error when you try to upload if not!)
but - if not using the bootloader on a '2560, like I said, I think you get screwed by the large flash size when the fuses are set to use a bootloader. On a board with less than 128k of flash (64k words), if there's no bootloader, but fuses tell it to use one, it jumps to the bootloader, slides along the empty flash for howevermany bytes are in the bootloader section (0xFFFF, ie, empty flash, is a no-op) and then wraps around to the start of the flash, hits the reset vector, and jumps to the application. But, unless I'm mistaken (I don't use the '2560 for anything - I don't know what you people do to waste that much flash!), on 256k+ AVR's, it will wrap around to 0x10000, not 0x00000, so it will sit there chasing itself in circles in the top half of the flash.
If that theory is correct (like I said, I don't use the '2560, so I'm not certain this is how it works, but I seem to remember it having come up before, and it seems very plausible considering how the large flash is handled on AVRs), just use MegaCore instead of the Arduino Mega2560 official board def - GitHub - MCUdude/MegaCore: Arduino hardware package for ATmega64, ATmega128, ATmega165, ATmega169, ATmega325, ATmega329, ATmega640, ATmega645, ATmega649, ATmega1280, ATmega1281, ATmega2560, ATmega2561, ATmega3250, ATmega3290, ATmega6450, ATmega6490, AT90CAN32, AT90CAN64 and AT90CAN128 - pick the 2560, set to no bootloader, and "burn bootloader", then upload with that board selected (you don't even need to tell it to "upload using programmer" if you have the '2560 with "no bootloader" option selected)