Vpc configuration help

I would like to have the ability to create a new VPC only if the vpc_id is null/blank. Is that possible?

Yes. You can use count. For example:

count = var.vpc_id != "" ? 1 : 0

This will create that resource if the variable is blank (you can change that to whatever condition you want).