Is it bad to use NULL in foreign key column to mean something (e.g. this is the default data)?
There is a third design option which is to separate your pay rates data into a separate table with no client or contractor information. This table contains every unique pay rate across all clients, contractors etc.

You then create a linking table to link clients, contractors and pay rates, plus add a column to your client table that references the ID of the default pay rate for that client.

This is a rough diagram of what I mean:



This should avoid the negatives of your previous options- you're not giving NULL value rows meaning (not that this is inherently wrong, but there are risks to data integrity by using NULL to infer a relationship to other data), and you're also not storing multiple copies of the same data or blurring the entities in your data model together.

This design also means you can reuse existing pay rates across multiple clients/contractors without duplicating data.