why it starts scale at zero?

void Update () {

	 transform.localScale = new Vector3 (Mathf.PingPong ( Time.time * 0.3f, 0.35f),Mathf.PingPong ( Time.time * 0.3f,0.35f),1f);

From the doc:
“PingPongs the value t, so that it is never larger than length and never smaller than 0.”
Which means it starts from 0 always and moving between 0 and you number.
If you want to start it from a number other than 0 you can do the following:

Mathf.PingPong (t, max - min) + min

This will make it move from you minimum number min to the maximum number max