I probably would not delete the record, both for historical tracking purposes and to make it easier to reinstate the account if the user resubscribes.
Personally, I think I'd go with the login process including a check if the account has expired by looking at the subscription date. You do not need any additional queries, just include the date column within the query you use to check the user name/password. If it's more than a year (or whatever interval old), then you do not log them in and instead send them to the re-subscription page. Additionally, when they first log in, you can check to see if their account will expire within some period of time, and if so, pop up an alert or some notice reminding them it's time to re-subscribe.