If the execution of OP_EQUAL gives true, then it does not leave true/false on the stack. If it is false then it leaves false on top of the stack and stops executing. 

    Bstack.push_back(fEqual ? vchTrue : vchFalse);
    if (opcode == OP_EQUALVERIFY)
    {
    if (fEqual)
        popstack(stack);
    else
        return set_error(serror, SCRIPT_ERR_EQUALVERIFY);
    }

[Source](https://github.com/bitcoin/bitcoin/blob/0.10/src/script/interpreter.cpp#L634-641)