In your first example you create an observable stream (http request), that does not get executed, as long as it has no listener. You are not adding a listener here.
In your second example you subscribe to the observable and add a listener to the stream with that subscription. When the observable has a listener, it gets executed.
You don’t handle the return value, right? In your first example it would be an observable, in your second a subscription
Error: The request body isn't either a blob or an array buffer
at Request.Body.blob (http.js:1202)
at Request.getBody (http.js:2220)
at Observable._subscribe (http.js:1640)
at Observable._trySubscribe (Observable.js:172)
at Observable.subscribe (Observable.js:160)
at AccountPage.webpackJsonp.110.AccountPage.uploadFile (account.ts:156)
at AccountPage.webpackJsonp.110.AccountPage.syncDrive (account.ts:144)
at Object.eval [as handleEvent] (AccountPage.html:50)
at handleEvent (core.js:13589)
at callWithDebugContext (core.js:15098)