Both 1 and 3 are grammatically correct, but I would take them to describe subtly different things.
If John took it, he would have let me know.
This is a statement of expectation. To put it into a wordier form... "If it is true that John has taken it, I expect that he will have left me a message to let me know. I should go and try to find that message". Essentially, this is intended as a conditional statement, asserting that we can determine whether John took it by investigating if John left a message of some sort.
If John had taken it, he would have let me know.
This is a statement of doubt. Wordier: "If it was true that John took it, I would know because he would have let me know. He didn't let me know, so I don't believe John took it". While stated conditionally, it's intended as an argument for why John didn't take it.
If John took it, he will have let me know.
This is, strictly, grammatically incorrect. The grammatically correct form that is the likely intended reading is "If John has taken it, he will have let me know". The issue is that "took" and "will have" do not pair well.