I claim that your ticket is valid for boarding on the earlier station, for somewhat obscure reasons.
Namely, in this particular case, the two stations are considered equivalent for tariff purposes, as can be seen in the Liste der gleichgestellten Tarifpunkte published by Deutsche Bahn (see this answer for an explanation of how to read this table). However, in itself, this only tells us that, if you had booked a ticket starting at Konstanz Hbf, you would've paid the same as you did for the ticket starting at Konstanz-Petershausen.
However, if you take into account the exact details of the ticket, I'd guess that you'll find that the ticket does give you this little bit of flexibility. To illustrate, I'll use an example from an earlier trip of mine, where I booked a Super Sparpreis Europa ticket from Braunschweig Hbf to Zwolle, but wanted to start my trip at Braunschweig-Gliesmarode. In my case, this required taking a separate regional train from Braunschweig-Gliesmarode to Braunschweig Hbf.
I reasoned as follows:
in the Deutsche Bahn Navigator app, the trip details are split into two tabs: Ticket and Itinerary. One would assume that you're bound to what's written on the ticket, and not to any details in only present in the itinerary.
the ticket listed the following:
Gültigkeit
ICE Fahrkarte (Einfache Fahrt)
Super Sparpreis Europa
2. Klasse
1 Person [age details elided]
Von: 31.10.2023, 00:00 Uhr
Bis: 02.11.2023, 03:00 Uhr
Verbindung
Braunschweig - Zwolle
Zugbindung: ICE 754, 17:56 Uhr
Via:
<1080>LEHR*H*WUNS*MI*LOEH*BUEN*OS*RHEI*Bad Bentheim(Gr)<1184>Regional Train*Hengelo
saying that the ticket is valid during a 2-day period starting at midnight, on journeys from Braunschweig (exact station unspecified) to Zwolle, as long as you make use of the ICE 754 leaving at 17:56 (which is the leg of the trip from Hannover to Osnabrück, and obey the routing instructions.
notably, the ticket only lists the Sammelbezeichnung (collective designation) for the stations involved (see linked PDF), thus the ticket is valid whether I start my journey as Braunschweig Hbf, or Braunschweig-Gliesmarode.
Now, your case might be different, but I would assume that as long as your ticket says "Konstanz – Nürnberg" as opposed to "Konstanz-Petershausen – Nürnberg Hbf" in the Verbindung section,[1] has its validity starting at midnight and doesn't list the regional train in the Zugbindung for some reason, then you're in the clear.
The caveat is that the ultimate test of this logic is what a Deutsche Bahn employee would say, and I haven't had the opportunity of them checking my ticket at a moment that would confirm or deny my logic.[2]
Worst case, the likelihood that your ticket will get checked during these two minutes is very low. And if it does happen, you can always say "huh? the ticket doesn't differentiate between the two stations, look!" ;3
[1] I suspect that this is the case when the distance traveled exceeds the distance minimum listed in Liste der gleichgestellten Tarifpunkte, which – in your case – is 101 km.
[2] I did have my ticket checked at a different moment, that confirmed that a different point of flexibility – being able to use an earlier regional train than the booked – is accepted, either because it's indeed valid, or because they don't care to enforce it. In the latter case I would've expected at least a comment about my deviation from the itinerary, though. Looks like that is very explicitly allowed:
Which trains can I travel on?
If you have a saver fare ticket, you can only travel on the service indicated on the ticket. Offers are available for ICE/IC/EC connections within Germany. You can use local transport (e.g. RE, RB, IRE and S-Bahn or non-DB trains) to get to/from a long-distance station if you include them in your booking. You are not restricted to travelling on a specific train when using local rail services. However, your journey must be completed by 10:00 am the following day.
– FAQ on the Super Sparpreis fare