Using Eliminate[]
:
With[{a = {a1, a2, a3}, b = {b1, b2, b3}},
Eliminate[{(a + 3 b) . (7 a - 5 b) == 0, (a - 4 b) . (7 a - 2 b) == 0,
cang == a . b/(Sqrt[a . a] Sqrt[b . b])}, Join[a, b]]]
4 cang^2 == 1
Solve[%, cang]
{{cang -> -1/2}, {cang -> 1/2}}
Only one of the two possible solutions is valid, however:
{(a + 3 b) . (7 a - 5 b) == 0, (a - 4 b) . (7 a - 2 b) == 0} /.
{a -> {1, 0, 0}, b -> Append[AngleVector[2 π/3], 0]}
{False, False}
{(a + 3 b) . (7 a - 5 b) == 0, (a - 4 b) . (7 a - 2 b) == 0} /.
{a -> {1, 0, 0}, b -> Append[AngleVector[π/3], 0]}
{True, True}