Yes, it means that you caused John (by threats, promises, or whatever) to be painting the house. It emphasizes the ongoing activity-- you kept John busy-- compared to the infinitive form ('I had John paint the house all morning'), which states John's assignment. 'Have' is a causative verb here, like 'make' and 'let'.
New words, one handy idiom, and a 2-minute quiz — delivered to your inbox to keep your streak alive.