You are correct up to some special cases.
First, we only have a line of intersection if the planes are not parallel, but this is equivalent to the normals being linearly dependent and the cross product being zero. Hence you can say: if the cross-product of the normals of the planes is non-zero, then it is the direction vector of the line of intersection. If it is zero, there is no line of intersection.
For the second part it would be better to first solve the simultaneous equations in three variables and choose a value after that. It could be the case that you can't choose if you want to prescribe a $x,y$ or $z$ value. Example: if the planes are $\{x=0\}$ (the $yz$-plane) and $\{y=0\}$ (the $xz$-plane), the line of intersection is $x=y=0$, the $z$-axis. If you wanted to find a point on this line of intersection using your suggested method, you could try to set $x=1$ and then solve the system of equations in the variables $y$ and $z$. But that would not work here. Therefore you should solve the under-determined system in three variables to see which one of those you can actually choose freely.