Note that participation to this survey is public (Access restriction = Public) and no email invitations were sent, so there's no Serial variable saved in the data records.
Let's start with a clarification here :) The privacy mode for the opt-in question defines the privacy mode that is stored for the respondent. A personal code (SERIAL) will be stored with the address entry anyway. Especially, if you are using the "pseudonomous" privacy modes, which requires a pseudonym (=SERIAL).
In your case, you should see a person code - but not in SERIAL, but in the variable assigned to your opt-in question. Because you may use multiple opt-in questions in one questionnaire.
How can we associate records from the 1st wave with records from the 2nd wave, given that the email address is not saved in the data records?
This usually is accomplished with the above mentioned person code (=pseudonym =SERIAL). When you send a mailing with the default settings (personalized link) then the SERIAL will be stored in the second interview.
I always recommend to test this with one of your email addresses: Complete the first questionnaire (it's sufficient to run the page with the opt-in question in the debug mode), and then send the mailing only to this address (you can limit which addresses get a mailing when sending it).
Is it possible to include other variables in the personalised link, such as the case number from the 1st wave?
Usually, you relate the cases by the person code. If oyu wanted the case number from wave 1, it would be a bit more complicated. By and large it would require the database for contents, and you would (again) use the person code as key for that.
Is it possible to send email invitations conditionally, depending on the answer in one of the questions of the 1st wave?
This requires an assignment between address entries and their data, i.e., de-anonymizing the data - at least temporarily.
If you are planning something like this, you would have to display the opt-in question conditionally. That means: Depending on the answers in questionnaire 1 you would have to display one opt-in question or another, setting different subgroups on the address entries.
If you need that post-hoc we can offer this: You send us a list of SERIALs to be moved in a certain subgroup (to email@example.com). We will, however, account 30€ plus tax for any such manual edits in the database. Usually, the way is to take care of that before starting data collection.
If the Access restriction for the 2nd wave is set to "Mailing / Access URL", is it necessary to have a personalised URL to be able to access the survey?
Yes. My recommendation was to make a copy of the questionnaire (in compose questionnaire) and make one copy "public" and the other "mailing". Make sure to select the "mailing" questionnaire in the mailing. And usually, it is useful to make the "public" questionnaire also the projects default questionnaire, so that the project's URL will immediately open that questionnaire.
For the second wave, is it better to create a new questionnaire under an existing project or create a new project?
Definitely another questionnaire in the same project. Because only then you can use the mailing feature and get the same SERIAL for the same adress entries. When using different projects, this association is unavailable.