The SQL you gave is probably being used as a subquery of another query (as it has an alias and brackets around it and a where clause that refers to the main query I think).
You can't get the table "monthly" to return a row that it does not have in a SELECT statement. However, what you can do in your main query is to do a LEFT JOIN from another table to this subquery. Your main query can then have the following in the select clause: iif(isnull(PayFeb.PrimaryKeyField),"NOT PAID",PayFeb.amount)
(Note that I use iif not NZ as iif is a native SQL function and is therefore quicker than Nz which is a VBA function).
eg something like this
SELECT
FROM AllMonths
LEFT JOIN
(Select MonthNumber, Nz(m.amount, "NOT PAID") AS Amount
From
monthly m
Where
m.month='February') As PayFeb
ON AllMonths.MonthNumber = monthly.MonthNumber
AND
AllMonths.year = PayFeb.year
PART TWO
I refer to Thorsten Kettner's answer to your almost duplicate question here
His answer does exactly what you need. Study it more and understand what the code he wrote does.
eg
nz(format(max(iif(m.desc = 'PAY FEB', m.amount, null)), 'Standard'), 'NOT PAID')
which shows 'NOT PAID' in case of NULL.