I am not entirely sure if my proof is correct. I would appreciate if somebody helped.
$(\rightarrow)$ Assume $P(a)$. Let an arbitrary $y$. Let $y=a$. Since $P(a)$ and $y=a$, then $P(y)$. Since $y$ is arbitrary, then $\forall y [(y=a) \rightarrow P(y)]$.
$(\leftarrow)$ Assume $\forall y [(y=a) \rightarrow P(y)]$. Then, by universal instantiation, $(a=a) \rightarrow P(a)$. Then, $P(a)$.
Since $P(a)$ is logically equivalent to $\forall y [(y=a) \rightarrow P(y)]$, then, assuming $\Gamma$ is a set of formulas, $\Gamma \rightarrow P(a)$ is equivalent to $\Gamma \rightarrow \forall y [(y=a) \rightarrow P(y)]$. If $y$ does not occur in $\Gamma$, then the statement is equivalent to $\forall y [\Gamma \rightarrow ((y=a) \rightarrow P(y))]$, which is the same as $\forall y [(\Gamma \land (y=a)) \rightarrow P(y)]$. Have I missed something? Thanks.
Your first proof is valid.
Semantically: $P(a)$ holds exactly when "anything that is $a$ satisfies $P$."
Your second is not quite correct. $\Gamma$ cannot be a set of formula, rather it must be a well formed formula to be used the way you are using it. Otherwise the proof is okay.