This is not a question about English as such and you have not told us which country this is in. The rules in the US are not the same as those in Britain which are different from those in Australia etc.
In any case, if he has told you to call him by his first name, do so. Don't call him professor anything, just call him John. He asked you to, therefore you should.
While in the US people often attach way too much importance to such titles (I have a PhD in biology and am often called Dr. in the US, almost never in Europe), if the person in question has stated that they don't want you to use the honorific then don't. Personally, if you were a student of mine and insisted on calling me Doctor after I had asked you to call me Charles, I would get annoyed with you.
Since you have now specified British English, definitely call him with his first name if he has asked you to. In my experience, the world of British academia is much more laid back when it comes to honorifics and it sounds down right strange to keep addressing someone you have daily contact with as "Professor" or "Doctor".
Professor John or Doctor John sound weird. The latter brings to mind Dr. John for example. Just accept that different cultures have different standards for politeness and that in this context it is perfectly respectful to call him John as long as your tone of voice and demeanor exhibit that respect.
I spent a few years in Spain, for example, where just about everyone calls everyone else by their first names. That took some getting used to but people were offended when I used the polite form (usted) as opposed to the normal (tu). Just go with the flow and call him as he has asked you to. He might also take it as an insult if you don't, what, does this kid think I'm too old to be called by my first name?.