Serial1 uses SERCOM0 on the Arduino Zero, although this different on the MKR series boards. The Serial1 and interrupt service routine (ISR) for SERCOM0 are declared in the Arduino Zero's "variant.cpp" file.

The main disadvantage of altering the "variant.cpp" file, is that it will be overwritten each time the Arduino Zero core is updated, currently version 1.6.19.

A possible solution is to create your own custom Arduino core for your board. Although it's somewhat old now, I've detailed how to do this here: https://forum.arduino.cc/index.php?topic=409715.0. The JSON configuration file references to the versions of bossac, openocd and CMSIS might be out of date by now.

Unfortunately, there's no way of doing that without modifying the "variant.cpp" file.

As Arduino chose not to make the serial handler functions weakly declared linker symbols in the "variant.cpp" file, it's therefore not possible to override these functions in your sketch.

Like I mentioned, the other option is to create and maintain your own board entry and copy of the Arduino core code on the Arduino IDE. It's then possible to make changes to your copy of the "variant.cpp" file without affecting other boards.