1. Je pense qu'il fallait qu'il parte = I think he had to leave
a. Your statement (in French) is a personal judgement concerning what the person ought to have done, independently of what she/he could have had in mind and so the English is not correct. Correct English in this case is as shown below, for instance.
Je pense qu'il fallait qu'il parte = I think he ought to have left. or I believe he ought to have left.
The correspondence of "I think he had to leave." is "Je crois qu'il fallait qu'il parte." or "Je crois qu'il devait partir.".
Although "devoir" is used to express the occurrence of programmed happenings and possibilities, it is also used to express necessity (as "falloir") and so you can use it in place of "falloir"; however according to the context it can have less force than "falloir" the reason being with little doubt that it is not, as "falloir" a specialised term; also, "devoir" can be plainly ambiguous.
examples
-- Sur ce chantier il faut que vous portiez un casque. -- Sur ce chantier vous devez porter un casque.
-- Il y a des additions en petits caractères; il faut que vous les compreniez. -- Il y a des additions en petits caractères; vous devez les comprendre.
In this second case it is not clear whether "devoir" is being used to formulate a necessity or only a judgement on the interlocutor's ability to understand.
b. If your statement (in French) had been meant to imply that according to what you knew of the person's situation that person him/herself had the knowledge of a necessity to leave, then the correspondence would have been correct if you'd used the verb "croire" (plain fact).
In French you can't use "believe" and "think" interchangeably to express plain facts, that is facts requiring no deductive reasoning.
examples
Je pense qu'il pourraient faire un effort et arriver à l'heure.
Je crois qu'ils arriveront à neuf heure. (an information vaguely remembered)
(However) Je pense qu'ils arriveront vers neuf heures. (estimation of travelling time for instance)
Je crois qu'il fait froid dehors. Je pense qu'il fait froid dehors.
(nevertheless) Je pense que même en cette saison il fait froid dans les montagnes et vous devriez emporter de meilleurs sacs de couchage.
2. Je croyais qu'il faudrait que j'attende = I thought I should wait.
a If you want to say that you thought it proper to wait (I thought I should wait.), the choice of verb is correct but the tense is not the proper one; the "conditionnel" in the "présent" can be used to formulate polite demands (Il faudrait que vous attendiez, le temps de distribuer les récompenses n'est pas encore arrivé.); a tense in the subjunctive is required here.
-- Je croyais qu'il faille que j'attende. -- Je croyais qu'il ait fallu que j'attende.
''Je croyais devoir attendre.'' is also correct.
b If by "I thought I should wait." you mean "I thought I would have to wait." then the same forms are used except for ''Je croyais devoir attendre.'' as it is weak, and this form should be replaced by, for instance, "Je croyais avoir à attendre."
3. The context should tell what is meant by "Je croyais devoir attendre." when you mean "I thought I should wait." as in "2.a".
Il n'était pas encore midi et il n'y avait pas trop de monde dans la queue; j'ai cru devoir attendre comme il y avait une chance de passer au guichet avant la fermeture.
When you're dealing with "2.b", as is explained there it is preferable to avoid the weak form.
La pancarte au guichet annonçait "plus d'entrevues aujourd'hui" et je croyais devoir attendre jusqu'au lendemain pour cette opération mais quelqu'un m'a averti de la possibilité d'être reçu le jour même.
(preferable) La pancarte au guichet annonçait "plus d'entrevues aujourd'hui" et je croyais avoir à attendre jusqu'au lendemain pour cette opération mais quelqu'un m'a averti de la possibilité d'être reçu le jour même.