= é atribuição, ou seja, você atribui o valor true a isCar, vai retornar false somente se não for possível atribuir o valor (ex: atribuir um número a um boolean, ou alterar o valor de um static)
== é comparação, ou seja, vc pergunta se isCar é igual a true, retorna true se a comparação for verdadeira e false se não for e note que o if sempre requer uma expressão booleana dentro dos parenteses, ou seja, tudo que você colocar nos parenteses do if deve ter um valor de retorno ou true ou false
e justo por isso vc também pode escrever este if dessa forma:
if (isCar) System.out.println("texto");
já que a variável que você está testando é um boolean, o próprio valor dela serve de argumento ao if, não precisa fazer toda a comparação (isCar == true).