Those two circuits are two different approches in implementing the oracle.
In the first one, the idea is to implement a function $f$ such that $f(x)=1$ iff $x=|000\rangle$. If the input is $|000\rangle$, then a NOT gate is applied to $q_a$ which is the ancilla qubit. If the ancilla qubit is prepared in state $|-\rangle$, then using phase kickback the sign of the amplitude of the state $|000\rangle$ is flipped.
In the second one, the sign of the amplitude of the state $|000\rangle$ is flipped directly through controlled Z gate, which adds an overall of phase of -1 if all control qubits are in state 1.
The reason why we have X gates is to be able to control them. If initially they are all 0, then applying the X gates all of them are in state 1 and we can apply the controlled operations. For instance oracle for 010 would have X gates only on the first and third qubits.
About your other question, think of the effect of that operation on an arbitrary basis state. If you apply it to state $|0\rangle$, then the output is $|0\rangle$ and the output is $-|x\rangle$ for any other input $|x\rangle$. Think about the converse, where you only flip the amplitude of state $|0\rangle$. Those two operations are indistinguihable and therefore the latter is implemented, which is exactly the same as the oracle implementation where $|000\rangle$ is the marked element. (Check this link:Gate corresponding to $-I$)